字符缓冲流 在读和写文件上都有一个特有的功能 都体现在处理换行数据上
其中 写数据的 因为 不同系统的换行符是不一样的 可能就导致 你写的文件 用不同应用 打开展示的就不一样
有点可能这个位置 他读了你的换行符 换行了 有点又可能因为系统 不读你的换行符
而字符缓冲流写数据 的特有方法 就能写入通用的换行符 不管你是什么系统 读到他写的换行符都会换行
读数据的 就是一行一行的读数据
可以用来统计文件有多少行
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class text {
public static void main(String args[]) throws IOException {
BufferedWriter Files = new BufferedWriter(new FileWriter("D:\\学习案例\\java\\目的地\\example.java"));
Files.write("你好:java");
Files.newLine();
Files.write("你好:.net");
Files.newLine();
Files.write("你好:react");
Files.newLine();
Files.write("你好:vue");
Files.close();
}
}
首先 我们这个文件是空的
然后 newLine就是换行方法 我们每写一段文本就要换行一次 我们先运行代码 然后去看文件
可以看到 我们的内容都是乖乖的换行啦
字符写数据 就还是用这个方法换行吧 因为他是不受系统不同的兼容限制的 不管什么系统都读这种换行符
然后我们来看 字符缓冲流按行读数据
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class text {
public static void main(String args[]) throws IOException {
BufferedReader Files = new BufferedReader(new FileReader("D:\\学习案例\\java\\目的地\\example.java"));
System.out.println(Files.readLine());
}
}
运行结果如下
可以看到 我们这里确实是读了一行的数据 但也真的就读了一行
如果我们想读完所有的 那就改一下读数据的方法就好了
首先readLine如果 取数据取到底 取不到 了 是返回null的 而读数据的是 -1
改一下就好了 参考代码如下
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class text {
public static void main(String args[]) throws IOException {
BufferedReader Files = new BufferedReader(new FileReader("D:\\学习案例\\java\\目的地\\example.java"));
String by;
while ((by = Files.readLine()) != null){
System.out.println(by);
}
Files.close();
}
}
运行结果如下
运行的效果就是这样