1.FileWriter
1.1FileWriter
用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream
。
public class Demo { public static void main(String[] args) throws IOException{ FileWriter fileWriter = new FileWriter("d:\aaa.txt"); //添加字符 fileWriter.write(100); fileWriter.write(101); //添加字符数组 char[] c = {'a','b','c','d'}; fileWriter.write(c); fileWriter.write(c,1,2); //添加字符串 fileWriter.write("hello world"); fileWriter.flush(); fileWriter.close(); } }
2.FileReader
1.1用来读取字符文件的便捷类。FileReader
用于读取字符流。要读取原始字节流,请考虑使用 FileInputStream
。
//flush 和close区别
// flush用来刷新缓冲区的 只有字符流才需要刷新
字节读取
public class Demo { public static void main(String[] args) throws IOException{ FileReader fileReader = new FileReader("d:\aaa.txt"); int len = 0; while((len=fileReader.read())!=-1) { System.out.print((char)len); } fileReader.close(); } }
字符数组读取
public class Demo { public static void main(String[] args) throws IOException{ FileReader fileReader = new FileReader("d:\aaa.txt"); char[] b = new char[1024]; int len = 0; while((len = fileReader.read(b))!=-1) { System.out.println(new String(b,0,len)); } fileReader.close(); } }
3.传输数据
public class Demo { public static void main(String[] args){ FileReader fileReader = null; FileWriter fileWriter = null; try { fileReader = new FileReader("d:\aaa.txt"); fileWriter = new FileWriter("d:\bbb/txt"); char[] ch = new char[1024]; int len = 0; while((len=fileReader.read(ch))!=-1) { fileWriter.write(ch,0,len); fileWriter.flush(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fileWriter!=null) { try { fileWriter.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fileReader!=null) { try { fileReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }