Java 使用 IO 流往文件中读、写内容 |
您所在的位置:网站首页 › 文本文件输入内容 › Java 使用 IO 流往文件中读、写内容 |
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 |