欢迎访问宙启技术站
智能推送

如何在Java中使用字符输入流和输出流?

发布时间:2023-06-22 03:58:42

字符输入流和输出流是Java中的两个重要类,用于读取和写入文本数据。在Java中,字符输入流可以通过Reader类实现,字符输出流可以通过Writer类实现。这两个类分别提供了一组API用于读取和写入文本数据,并可以指定字符编码方式。

使用字符输入流:

1. 创建FileReader对象

FileReader reader = new FileReader("file.txt");

2. 创建BufferedReader对象

BufferedReader bufferedReader = new BufferedReader(reader);

3. 读取数据

String line = bufferedReader.readLine();

while(line != null) {

  System.out.println(line);

  line = bufferedReader.readLine();

}

4. 关闭流

bufferedReader.close();

上述代码中,使用FileReader类创建了一个文件输入流对象,通过BufferedReader类包装输入流对象,使用readLine()方法读取文件内容,并打印出来。最后,使用close()方法关闭输入流。

使用字符输出流:

1. 创建FileWriter对象

FileWriter writer = new FileWriter("file.txt");

2. 创建BufferedWriter对象

BufferedWriter bufferedWriter = new BufferedWriter(writer);

3. 写入数据

bufferedWriter.write("Hello world!");

4. 关闭流

bufferedWriter.close();

上述代码中,使用FileWriter类创建了一个文件输出流对象,通过BufferedWriter类包装输出流对象,使用write()方法写入数据。最后,使用close()方法关闭输出流。

除了上述常规方式外,还有一些常用的字符输入流和输出流,例如InputStreamReader和OutputStreamWriter。这两个类可以将字节流转化为字符流,并可指定字符编码方式。

使用InputStreamReader:

1. 创建FileInputStream对象

FileInputStream inputStream = new FileInputStream("file.txt");

2. 创建InputStreamReader对象

InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");

3. 创建BufferedReader对象

BufferedReader bufferedReader = new BufferedReader(reader);

4. 读取数据

String line = bufferedReader.readLine();

while(line != null) {

  System.out.println(line);

  line = bufferedReader.readLine();

}

5. 关闭流

bufferedReader.close();

使用OutputStreamWriter:

1. 创建FileOutputStream对象

FileOutputStream outputStream = new FileOutputStream("file.txt");

2. 创建OutputStreamWriter对象

OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8");

3. 创建BufferedWriter对象

BufferedWriter bufferedWriter = new BufferedWriter(writer);

4. 写入数据

bufferedWriter.write("Hello world!");

5. 关闭流

bufferedWriter.close();

上述代码中,使用FileInputStream类创建了一个文件输入流对象,通过InputStreamReader类将字节流转化为字符流,并指定UTF-8字符集。同理,使用FileOutputStream类创建了一个文件输出流对象,通过OutputStreamWriter类将字节流转化为字符流,并指定UTF-8字符集。

在使用字符输入流和输出流时,需要注意以下几点:

1. 用完后需要及时关闭流,防止资源浪费和泄露。

2. 在使用BufferedReader和BufferedWriter时,可以提高读写效率,降低IO操作次数。

3. 不同的字符集会导致读写结果的不同,需要根据具体情况进行选择。

总之,字符输入流和输出流在Java中非常重要,可以很方便地读取和写入文本数据。通过合理的使用,可以提高程序的读取和写入效率,同时保证数据的正确性和安全性。