- 浏览: 32137 次
- 性别:
最新评论
---------------------- android培训、java培训、期待与您交流! ----------------------
黑马程序员-IO流如何创建文件
IO流创建一个文件
流的概念和作用
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
IO流用来操作设备间的数据传输,
Java对数据的操作是通过流的方式实现的。
IO流的分类
根据处理数据类型的不同分为:字符流和字节流
字节流的抽象基类:InputStream,OutputStream。
字符流的抽象基类:Reader,Writer。
根据数据流向不同分为:输入流和输出流
字符流和字节流
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。
字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi、mp3等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
输入流和输出流
对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。
我们要用流对数据进行操作,首先我们要先有流,可以根据我们要操作的文件的类型进行选择使用的对象。
例如,我们要操作一个文本对象,创建一个名为hello.txt的文本文件,将“hello,java”存入到该文件中。
根据 题意我们知道,要操作的 是一个文本对象, 要使用到的是Writer类,在java帮助文档api中我们可以知道 ,Writer是一个抽象类,那么我们可以找找看Writer有没有子类可以实现对文本文件的操作,
我们会找到在Writer的子类中有一个专门用来操作文本对象 的子类FileWriter,那么,我们要先创建一个FileWriter类的对象,
FileWriter fr=new FileWriter("hello.txt");
我们根据给定的文件名创建一个FileWriter的对象,该对象一被初始化就必须要明确被操作文件,如果指定目录下不存在该文件的同名文件,则会创建一个新的文件,如果该文件名已经存在,那么原有的同名文件将会被创建的覆盖。
在FileWriter类中有一些从Writer类中继承过来的方法,在这里我们可以直接拿过来使用。
Write();该方法是用来写入数据,在Writer类中有很多重载的witer方法,可以实现多种数据类型的操作,如单个字符,字符数组,字符串等。
flush();该方法是用来刷新数据的,将写入的流中的数据刷新到文件中。
close():该方法是用来关闭流资源的,该方法有一个特点,就是在关闭流之前进行一次刷新操作,其底层就是调用的flush方法。因为关闭资源的操作是必须要执行的,所以将其代码放到finally中。
具体代码如下:
import java.io.*;
class IO
{
public static void main(String[] args)
{
FileWriter fw=null;
try
{
fw=new FileWriter("hello.txt");
fw.write("hello,java");
fw.flush();
}
catch(IOException e)
{
throw new RuntimeException("写入失败");
}
finally
{
try
{
if(fw != null)
fw.close();
}
catch(IOException e)
{
throw new RuntimeException("关闭失败");
}
}
}
}
若是已经有了一个文件,要对文件进行续写,一额可以用这种方法实现,只是创建刘对象的时候要进行区分,在FileWriter类中有多个构造方法
public FileWriter(String fileName, boolean append)
throws IOException根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
参数:
fileName - 一个字符串,表示与系统有关的文件名。
append - 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。
如下面的例子,将abc续写到hello.txt的结尾处。
import java.io.*;
class IO5
{
public static void main(String[] args)
{
FileWriter fw=null;
try
{
fw=new FileWriter("hello.txt",true);
fw.write("abc");
fw.flush();
}
catch(IOException e)
{
throw new RuntimeException("写入失败");
}
finally
{
try
{
if(fw != null)
fw.close();
}
catch(IOException e)
{
throw new RuntimeException("关闭失败");
}
}
}
}
发表评论
-
正则表达式
2013-02-18 22:45 704正则表达式 正则表达 ... -
网络编程TCP传输
2013-02-18 22:37 605TCP传输 TCP传输 ... -
网络编程UDP
2013-02-18 22:31 613网络编程U ... -
黑马程序员-GUI图形用户界面1
2013-02-17 22:49 600---------------------- an ... -
黑马程序员-API中的其他常用类
2013-02-17 22:41 591---------------------- an ... -
黑马程序员-IO_其他常用流对象
2013-02-17 22:32 698---------------------- an ... -
黑马程序员-IO_字符编码
2013-02-17 22:22 638---------------------- andr ... -
黑马程序员-IO_File类
2013-02-16 23:03 607---------------------- and ... -
黑马程序员-IO-流应用规律
2013-02-16 22:34 565---------------------- andr ... -
黑马程序员-IO_字节流应用
2013-02-16 21:03 789---------------------- andr ... -
黑马程序员-IO_字符流缓冲区
2013-02-16 20:38 723---------------------- an ... -
黑马程序员-IO_字符流和字节流
2013-02-16 20:29 761---------------------- ... -
黑马程序员-集合工具类
2013-02-10 20:29 704---------------------- andr ... -
黑马程序员-泛型
2013-02-10 19:47 693---------------------- an ... -
黑马程序员-集合3-Map集合
2013-02-10 19:16 596---------------------- an ... -
黑马程序员-集合2-Set集合
2013-02-01 22:58 545---------------------- an ... -
黑马程序员-集合1-List集合
2013-02-01 22:41 699---------------------- andr ... -
黑马程序员-对象包装类
2013-02-01 22:26 770---------------------- a ... -
黑马程序员-字符串缓冲区
2013-02-01 22:11 626---------------------- and ... -
黑马程序员-String类
2013-01-30 22:49 550---------------------- andr ...
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习).zip
关于java的IO流基础的练习,适合刚接触IO流,没有基础的同学
黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip
赠送Maven依赖信息文件:commons-io-2.8.0.pom; 包含翻译后的API文档:commons-io-2.8.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:commons-io:commons-io:2.8.0; 标签:commons、中英对照文档、...
Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
黑马程序员_毕向东_Java基础视频教程第18天-11-IO流(文本文件读取方式二).zip
赠送Maven依赖信息文件:commons-io-2.5.pom; 包含翻译后的API文档:commons-io-2.5-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-io:commons-io:2.5; 标签:commons、io、中文文档、jar包、java; ...
赠送Maven依赖信息文件:commons-io-2.11.0.pom; 包含翻译后的API文档:commons-io-2.11.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-io:commons-io:2.11.0; 标签:commons、中文文档、jar包、java...
赠送Maven依赖信息文件:commons-io-1.3.2.pom; 包含翻译后的API文档:commons-io-1.3.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-io:commons-io:1.3.2; 标签:commons、io、中文文档、jar包、java...
传智播客黑马程序员javaIO流重点总结(必读).doc
赠送Maven依赖信息文件:commons-io-2.7.pom; 包含翻译后的API文档:commons-io-2.7-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-io:commons-io:2.7; 标签:commons、jar包、java、中文文档; 使用...
io流-文件流
开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2开发工具 commons-io-1.3.2...
09-IO流(文件的续写).avi
commons-io-2.2 maven 依赖 jar包 commons-io-2.2maven 依赖 jar包 commons-io-2.2 commons-io-2.2
java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载