Java输入输出流的使用详细介绍
Java输入输出流是处理输入输出数据的重要组成部分。它们用于读取和写入二进制和字符数据。本文将介绍Java输入输出流的使用,包括字节输入流和字符输入流、字节输出流和字符输出流、以及使用示例。
字节输入流和字符输入流
Java提供了两种类型的输入流:字节输入流和字符输入流。以下是它们的区别:
- 字节输入流:通过字节输入流读取的数据是字节,可以读取任何类型的文件,包括图像、视频、音频和文本文件。例如,InputStream和FileInputStream是常用的字节输入流。
- 字符输入流:通过字符输入流读取的数据是字符,主要用于读取文本文件。例如,Reader和FileReader是常用的字符输入流。
以下是使用Java输入流读取文本文件的示例代码:
try {
BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
上述代码中,我们使用BufferedReader类读取文件的每一行,并将其打印到控制台上。在读取完成后,使用close()方法关闭输入流。
字节输出流和字符输出流
Java也提供了两种类型的输出流:字节输出流和字符输出流。以下是它们的区别:
- 字节输出流:通过字节输出流写出的数据是字节,可以写任何类型的文件,包括图像、视频、音频和文本文件。例如,OutputStream和FileOutputStream是常用的字节输出流。
- 字符输出流:通过字符输出流写出的数据是字符,主要用于写出文本文件。例如,Writer和FileWriter是常用的字符输出流。
以下是使用Java输出流向文件写入文本的示例代码:
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("test.txt"));
writer.write("Hello World!");
writer.newLine();
writer.write("This is a test.");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
上述代码中,我们使用BufferedWriter类向文件写入两行文本,并使用newLine()方法在每行结束时添加换行符。在写入完成后,使用close()方法关闭输出流。
示例:将字节流转换为字符流
有时候,我们需要将字节输入流转换为字符输入流,或将字节输出流转换为字符输出流。Java提供了InputStreamReader和OutputStreamWriter类以进行这些转换。
以下是将字节输入流转换为字符输入流的示例代码:
try {
InputStream inputStream = new FileInputStream("test.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader reader = new BufferedReader(inputStreamReader);
String line = reader.readLine();
while (line != null) {
System.out.println(line);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
上述代码中,我们使用InputStreamReader类将字节输入流转换为字符输入流。使用BufferedReader读取每一行文本并打印在控制台上。
以下是将字节输出流转换为字符输出流的示例代码:
try {
OutputStream outputStream = new FileOutputStream("test.txt");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
BufferedWriter writer = new BufferedWriter(outputStreamWriter);
writer.write("Hello World!");
writer.newLine();
writer.write("This is a test.");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
上述代码中,我们使用OutputStreamWriter类将字节输出流转换为字符输出流。使用BufferedWriter将两行文本写入文件,并使用newLine()方法添加换行符。在写入完成后,使用close()方法关闭输出流。
以上是Java输入输出流的使用详细介绍,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java输入输出流的使用详细介绍 - Python技术站