java中文件的I/O操作
2015-09-16 12:53
281 查看
java中文件的读写操作
(一)
(1)java中文件的字节转成字符读操作
?
以上是简单的字节转字符输出的例子,当数据量较大时,应该重复读取
?
(2
)java中文件的字符转为字节写操作
?
(二)
利用缓冲区来进行文件的写入和写出,都是以缓冲区为中介,java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
(1)利用缓冲区向文件写入数据
?
为什么用到flush(),因为缓冲区对于小数据,可能要等到存满一定量的数据才会向文件写入,造成一定的数据滞留,利用flush可以将滞留的数据一起输送给文件,防止文件数据的丢失。
(2)利用缓冲区从文件中读取数据
?
bfr.readline()是通过从缓冲区以行为单位读取数据,BufferReader是通过将字节转换成字符类。
另外关于文件的写入不覆盖新的数据,方法
FileOutputStream os = new FileOutputStream("test.txt", true);//true表示每次添加到文件末尾,从而不删除原有数据
(三)关于FileReader和FileWriter
(1)FileReader
FileReader类创建了一个可以读取文件内容的Reader类。比较适用于纯文本文件
例如,从一个文件逐行读取并把它输出到标准输入流。
?
(2)FileWriter
FileWriter 创建一个可以写文件的Writer类。构造函数:
FileWriter (String filePath) filePath 是一个文件的完整路径
FileWriter(String filePath, boolean append) 如果append为true ,输出是附加到文件尾的,即不覆盖原数据
FileWriter(File fileObj) 是描述该文件的File对象
?
(一)
(1)java中文件的字节转成字符读操作
?
?
)java中文件的字符转为字节写操作
?
利用缓冲区来进行文件的写入和写出,都是以缓冲区为中介,java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
(1)利用缓冲区向文件写入数据
?
(2)利用缓冲区从文件中读取数据
?
另外关于文件的写入不覆盖新的数据,方法
FileOutputStream os = new FileOutputStream("test.txt", true);//true表示每次添加到文件末尾,从而不删除原有数据
(三)关于FileReader和FileWriter
(1)FileReader
FileReader类创建了一个可以读取文件内容的Reader类。比较适用于纯文本文件
例如,从一个文件逐行读取并把它输出到标准输入流。
?
FileWriter 创建一个可以写文件的Writer类。构造函数:
FileWriter (String filePath) filePath 是一个文件的完整路径
FileWriter(String filePath, boolean append) 如果append为true ,输出是附加到文件尾的,即不覆盖原数据
FileWriter(File fileObj) 是描述该文件的File对象
?
相关文章推荐
- java学习之Math类
- java学习之泛型
- SpringMVC实现一个controller写多个方法
- java 逆置 单链表
- Java学习笔记01 编译和运行Java程序
- Java日期格式转换
- spring利用注解方式实现Java读取properties属性值
- Spring中事务传播行为种类
- java中String为什么是不可变的?
- spring+cxf+hibernate 发布restful WebService服务
- Java复习笔记—基础语法
- Spring MVC3.0.5搭建全程
- Struts2--Interceptors
- MyEclipse 强制杀掉后 INFO: Port busy 8009 java.net.BindException: Address already in use: JVM_Bind
- java eclipse导出可运行jar包(java服务)和导入
- MyEclipse 设置字体、关闭html,jsp等页面的可视化编辑器
- JAVA中的Random()函数
- Java swing 项目写成bat文件
- java基础学习笔记--++a与a++以及逻辑运算符
- Java中获取工程路径