IO字节流和字符流的应用

来源:互联网 发布:什么是java分布式 编辑:程序博客网 时间:2024/05/22 11:49

字节流和字符流的应用

FileWriter

1,创建一个FileWrite对象,该对象一被初始化就必须要明确被操作的文件.而且该文件会被创建到指定的目录下.如果该目录下已有同名文件,将被覆盖.其实该步就是在明确数据要存放的目的地.

   FileWriterfw = new FileWriter(“Demo.txt”);

2,调用write方法,将字符串写入到流中.

          fw.write(“abcd”);

3,刷新流对象中的缓冲中的数据,将数据刷到目的地中.

          fw.flush();

   fw.close();//关闭资源,但是关闭之前会刷新一次内部的缓冲中的数据,将数据刷到目的地中.

FileReader

读取方法一(通过字符进行读取)

   1,创建一个文件读取流对象,和指定名称的文件相关联.要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException.

                 FileReaderfr = new FileReader(“demo.txt”);

   2,调用读取流对象的read方法.

          read():一次读一个字符,而且会自动往下读.

读取方法二(通过字符数组进行读取)

          定义一个字符数组,用于存储读到的字符.

          该read(char[] )返回的是读到字符个数.


字节流FileInputStream和FileOutputStream的应用

1.读取文件
创建FileInputStream对象, 指定一个文件. 文件必须存在, 不存在则会抛出FileNotFoundException
使用read()方法可以从文件中读取一个字节. 如果读取到文件末尾会读到-1
读取结束后需要释放资源, 调用close()方法关闭输入流
2.写出文件
创建FileOutputStream对象, 指定一个文件. 文件不存在会创建新文件, 存在则清空原内容. 如果需要追加, 在构造函数中传入true.
使用write()方法可以向文件写出一个字节.
写出结束后同样需要调用close()
3.拷贝文件
可以从文件中逐个字节读取, 逐个字节写出, 但这样做效率非常低
我们可以定义一个数组作为缓冲区, 一次读取多个字节装入数组, 然后再一次性把数组中的字节写出