java中文件的I/O操作

王朝学院·作者佚名  2016-08-27  
宽屏版  字体: 小 | 中 | 大 | 超大  

java中文件的读写操作

(一)

(1)java中文件的字节转成字符读操作

FileInputStream fStream = new FileInputStream("test.txt");//此时为字节流

byte[] b = new byte[31];//定义字节数组存储从文件夹中读取的数据,大小最多31字节

fStream.read(b);//将test.txt的数据读到b中

String line = new String(b,"UTF-8");//将字节转换成字符

System.out.PRintln(line);//打印输出

以上是简单的字节转字符输出的例子,当数据量较大时,应该重复读取

while(fStream.read(b)!=-1)

{

String line=new String(b,"UTF-8");

System.out.println(line);

}

(2

)java中文件的字符转为字节写操作

FileOutputStream fos = new FileOutputStream("test.txt");

String line="hello world";

byte b[]=line.getBytes();//将字符转换成字节

fos.write(b);通过字节流写入文件

fos.close();//关闭

(二)

利用缓冲区来进行文件的写入和写出,都是以缓冲区为中介,java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

(1)利用缓冲区向文件写入数据

String line="hello";

FileOutputStream fos = new FileOutputStream("test.txt");

BufferedWriter bfr = new BufferedWriter(new OutputStreamWriter(fos));//

bfr.write(line);//向缓冲区写入数据

bfr.flush();//清理缓冲区,将数据全部传入文件

bfr.close();//关闭缓冲区

fos.close();//关闭文件输出流

为什么用到flush(),因为缓冲区对于小数据,可能要等到存满一定量的数据才会向文件写入,造成一定的数据滞留,利用flush可以将滞留的数据一起输送给文件,防止文件数据的丢失。

(2)利用缓冲区从文件中读取数据

FileInputStream fis = new FileInputStream("test.txt");

BufferedReader bfr = new BufferedReader(new InputStreamReader(fis));

String line=null;

while((line=bfr.readLine())!=null)//从读缓冲区一行一行的读取数据

{

System.out.println(line);

}

bfr.flush();//清空缓冲区

bfr.close();//关闭缓冲区

fis.close();//关闭文件输入流

bfr.readline()是通过从缓冲区以行为单位读取数据,BufferReader是通过将字节转换成字符类。

另外关于文件的写入不覆盖新的数据,方法

FileOutputStream os = new FileOutputStream("test.txt", true);//true表示每次添加到文件末尾,从而不删除原有数据

(三)关于FileReader和FileWriter

(1)FileReader

FileReader类创建了一个可以读取文件内容的Reader类。比较适用于纯文本文件

例如,从一个文件逐行读取并把它输出到标准输入流。

import java.io.*;

class FileReaderDemo {

public static void main (String args[ ] ) throws Exception {

FileReader fr = new FileReader ("c://in.txt");

BufferedReader br = new BufferedReader (fr);

String s;

while ((s = br.readLine() )!=null) {

System.out.prinln (s);

}

fr.close();

}

}

(2)FileWriter

FileWriter 创建一个可以写文件的Writer类。构造函数:

FileWriter (String filePath) filePath 是一个文件的完整路径

FileWriter(String filePath, boolean append) 如果append为true ,输出是附加到文件尾的,即不覆盖原数据

FileWriter(File fileObj) 是描述该文件的File对象

FileWriter fr = new FileWriter("test.txt");

BufferedWriter bfw = new BufferedWriter(fr);

String linString="hello World";

bfw.write(linString);

bfw.flush();

bfw.close();

fr.close();

综上只是简单叙述了常见读写文件的方法,欢迎指正

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有