2016-01-10 08:33:40|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:Java, 文件操作|来源:唯设编程网
文件操作是是程序员的“熟客”,Java常用的文件操作类包括FileWritter/FileReader、BufferedWriter/BufferReader、FileOutputStream/FileInputStream,本文对他们的使用方法进行总结,需要的朋友可以参考:
FileWritter, 字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个true (布尔)值作为FileWritter构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾。
FileReader是用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader,这部分将在后面进行介绍。
1. 替换所有现有的内容与新的内容。
new FileWriter(file);
2. 保留现有的内容和附加在该文件的末尾的新内容。
new FileWriter(file,true);
此方法根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
下面是一个追加文件示例
假定有一个名为“javaio-appendfile.txt”的文本文件,并包含以下内容。
ABC Hello
用下面的代码可以实现向该文件追加新的内容:
package com.yiibai.file; import java.io.File; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; public class AppendToFileExample { public static void main( String[] args ) { try{ String data = " This content will append to the end of the file"; File file =new File("javaio-appendfile.txt"); //if file doesnt exists, then create it if(!file.exists()){ file.createNewFile(); } //true = append file FileWriter fileWritter = new FileWriter(file.getName(),true); BufferedWriter bufferWritter = new BufferedWriter(fileWritter); bufferWritter.write(data); bufferWritter.close(); System.out.println("Done"); }catch(IOException e){ e.printStackTrace(); } } }
现在,文件“javaio-appendfile.txt”更新为如下内容:
ABC Hello This content will append to the end of the file
BufferedWriter 用来将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。不同于字节流(数据转换成字节),你可以直接写字符串,数组或字符数据保存到文件。
package com.yiibai.iofile; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class WriteToFileExample { public static void main(String[] args) { try { String content = "This is the content to write into file"; File file = new File("/users/mkyong/filename.txt"); // if file doesnt exists, then create it if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(content); bw.close(); System.out.println("Done"); } catch (IOException e) { e.printStackTrace(); } } }
上面的代码实现了将content内容使用BufferWriter写入到filename.txt的文件中,BufferedWriter的构造函数使用的参数是一个Writer类型的对象。