在java下主要通过file类来对文件进行操作!
一、创建文件
//创建一个文件对象,如:
File f1=new File("E:\\test.txt");
二、文件操作
说实话,在java下读写文件的诸如PrintWriter、FileWriter、FileInputStream之类的IO流非常之多,初看之下确实会让人晕死!!!!!但是,根据自己的需要,选择合适的就可以了,没有必要全部掌握。
其实在java下,常用的文件IO流也就FileWriter/FileReader和FileOutputWriter/FileInputReader这两组。其中,FileWriter/FileReader是FileOutputWriter/FileInputReader的子类,二者的主要区别在于FileWriter/FileReader采用系统默认的编码方式进行读写,不可以自己设置;而FileOutputWriter/FileInputReader可以在构造函数中设置读写的编码方式,所以为了保险防止出现乱码,一般用FileOutputWriter/FileInputReader进行文件的读写。
FileOutputWriter/FileInputReader是java中非常关键的文件IO流,它是字节流-字符流的转换桥梁。可以用下面这张图说明一下:
1.写文件示例:
File out = new File(file);
//构造 OutputStreamWriter 实例,并设置写入文件的编码方式
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(out), Charset.forName("GBK"));
BufferedWriter bw = new BufferedWriter(ow); //引入BufferedWriter进行封装是为了提高写文件的效率
bw.write(); //写入内容
bw.newLine(); //另起一行写
bw.flush(); //刷新
bw.close(); //关闭流
值得注意的是,在new FileOutputStream(out)中,默认是覆盖原内容地写。如果要追加地写文件,还需要设置一个参数:
new FileOutputStream(out,ture) //追加写到文件中
2.读文件示例:
File out = new File(file);
//构造 InputStreamReader 实例,并设置写入文件的编码方式
InputStreamReader ir = new InputStreamReader(new FileInputStream(out), Charset.forName("GBK"));
BufferedReader br = new BufferedReader(ir); //引入BufferedReader进行封装是为了提高写文件的效率
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null)
{
/*
处理
*/
}
br.close(); //关闭读文件流