演示对已有文件数据的续写及换行:
package CoreJavaPractice; import java.io.*; public class Practice_2 { public static void main(String[] args) throws IOException {
//传递一个true参数、代表不覆盖已有的文件,并在已有的末尾处进行数据的续写。 FileWriter fw = new FileWriter("demo.txt",true); fw.write("haha");
// 换行、\n 记事本,多加一个\r\n
fw.write("nihao,,,\r\nxiexie");
fw.close();
}
}
读取方式1:
Reader:read
有很多读的方法, 也有一个关的方法, 这个关的方法不刷新。 (因为你写东西要刷新,但是你读东西根本不用刷新)
package CoreJavaPractice; import java.io.*; public class Practice_2 { public static void main(String[] args) throws IOException { // 创建一个文件读取流对象,和指定名称文件相关联 //要保证该文件时已经存在的,如果不存在,会发生异常:FileNotFoundException(IO异常子类) FileReader fr = new FileReader("demo.txt"); //调用一个read方法,read方法读到最后会返回-1 //read 方法一次读一个字符,而且会自动往下读、所以用一个循环直接搞定,判断条件是这个返回的值不等于-1就运行 int ch = 0; while((ch=fr.read())!=-1) { sop("ch="+(char)ch); } } public static void sop(Object obj) { System.out.println(obj); } }
读取方式2:
通过字符数组进行读取:
package CoreJavaPractice; import java.io.*; public class Practice_2 { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("demo.txt"); //定义一个字符数组,用于存储读到的字符。 //该read(char[])返回的是读到字符个数 char[] buf = new char[1024]; int num = 0; while((num=fr.read(buf))!=-1) { sop("num="+num+"..."+ new String(buf,0,num)); } fr.close(); } public static void sop(Object obj) { System.out.println(obj); } }