InputStreamReader和OutputStreamReader是Java中的类,用于在字节流和字符流之间进行转换。
InputStreamReader将字节流转换为字符流。它接受一个输入字节流(如FileInputStream或Socket.getInputStream())作为参数,并将其转换为字符流。它使用指定的字符编码将字节解码为字符。例如,可以使用以下代码将字节流转换为字符流:
InputStream inputStream = new FileInputStream("input.txt");
Reader reader = new InputStreamReader(inputStream, "UTF-8");
上述代码中,FileInputStream读取input.txt文件的字节流,然后InputStreamReader将其转换为字符流,使用UTF-8字符编码进行解码。
OutputStreamReader将字符流转换为字节流。它接受一个输出字节流(如FileOutputStream或Socket.getOutputStream())作为参数,并将字符流转换为字节流输出。它使用指定的字符编码将字符编码为字节。例如,可以使用以下代码将字符流转换为字节流:
OutputStream outputStream = new FileOutputStream("output.txt");
Writer writer = new OutputStreamWriter(outputStream, "UTF-8");
上述代码中,FileOutputStream用于创建output.txt文件的字节流,然后OutputStreamWriter将字符流转换为字节流,使用UTF-8字符编码进行编码。
通过使用InputStreamReader和OutputStreamReader,可以在字符流和字节流之间进行转换,使字符数据和字节数据之间可以互相转换。这在处理文本文件和网络通信等场景中非常有用。