Java 使用 IO 流往文件中读、写内容

您所在的位置:网站首页 文本文件输入内容 Java 使用 IO 流往文件中读、写内容

Java 使用 IO 流往文件中读、写内容

2024-07-15 03:28| 来源: 网络整理| 查看: 265

1、如何往一个文件里面写内容? public class Test_3{ // 字符流读取一个文件的内容 @Test public void fileRead() throws IOException { char[] c = new char[500]; // 设置一个足够大的数组 FileReader fileReader = new FileReader("E://aaa.txt"); int num = fileReader.read(c); // 读取文件里的内容到数组里,并返回读取的长度 String str = new String(c); // 把数组转为字符串 System.out.println("读取的字符个数为:" + num + ",其内容如下:" + str); fileReader.close(); // 关闭流 } // 字节流读取一个文件的内容 @Test public void inputStream() throws IOException { byte[] c = new byte[500]; // 定义一个字节数组存内容 File file = new File("E://aaa.txt"); // 获取文件路径 FileInputStream fileInputStream = new FileInputStream(file); // 创建一个字节流 int num = fileInputStream.read(c); // 读取文件内容,并把读取到内容存到数组里 String str = new String(c); // 把数组转为字符串 System.out.println("读取到的内容长度为:" + num); System.out.println("读取到的内容:" + str); fileInputStream.close(); // 关闭流 } // 字符流把内容写入文件里面 @Test public void fileWriter() throws IOException { String str = "追加把"; // 准备好需要需要写入的内容 // 如果不想覆盖掉原来文件的内容,则在路径后加一个参数, // 该参数是否追加在原内容后面,默认为 false FileWriter fileWriter = new FileWriter("E://aaa.txt", true); fileWriter.write(str); fileWriter.append("我想追加啊"); fileWriter.close(); fileRead(); } // 字节流把内容写入文件里面 @Test public void fileOutputStream() throws IOException { byte[] a = {'a', 's', 'd', 'f', 'g'}; // 创建一个字节数组 FileOutputStream outputStream = new FileOutputStream("E://aaa.txt"); // 创建一个字节输入流 outputStream.write(a); // 把内容写到文件里 outputStream.close(); // 关闭流 inputStream(); // 调用字节输出流查看内容 } } 2、FileOutputStream、FileInputStream 和 FileWriter、FileReader 有什么区别? FileOutputStream 是属于字节输出流(写),继承于 OutputStream。FileInputStream 是属于字节输入流(读),继承于 InputStream。FileWriter 是属于字符输入流(写),FileWriter 有一个缓冲区,在写入内容后,要等待缓冲区满了或者流被刷新后 才会把数据一次性写入到文件中,否则则不会吧内容写入到文件中,继承于 OutputStreamWriter 。FileReader 是属于字符输出流(读),FileReader 也有缓冲区,与 FileWriter 同理,继承于 InputStreamReader 。 3、FilWriter 和 FileReader 的作用

作用: 用于在格式/解析与传递之间缓存字符序列。对于输出,较短的字符序列格式化之后并不马上输出,而是保存在缓冲区里,待累积到一定规模之后再传递到外部设备。相反,从外部设备读入的大量数据也是先放在缓冲区,然后逐步取出完成输入。默认时,IO流的输入输出都是经过缓冲的,也可以让IO流工作在无缓冲模式下。

使用缓冲区的优势:

避免频繁操作磁盘,减少耗能,把数据都存到缓冲区中,待一定量再作磁盘操作。直接操作缓冲区的速度比操作磁盘速度快,提高性能。

所以,在有大量的读写操作时候建议使用缓冲区。

4、OutputStreamWriter 和 InputStreamReader 的是什么?其作用是什么?

是字节流和字符流的一个转换类,其作用主要用于字节与字符之间的相互转换。

使用场景: 是将一种字符表达式转换成另一种字符表达式。如果格式化产生的字符表达式与外部字符表达式不同(输出时),或者外部表达式与IO流能解析的表达式不同(输入时),就必须进行编码转换。如多字节编码与宽字符编码之间的转换等。多数情况下并不需要进行编码转换。

OutputStreamWriter 是 Writer 的子类,将字符流变为字节流,即:将一个字符流输出对象变为字节流输出对象。InputStreamReader 是 Reader 的子类,将字节流变为字符流,即:将一个字节流的输入对象变为字符流输入对象。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3