5. 设计一个java程序,实现分别使用字节和字符输入流读取“C:\Windows\System32\drivers\etc”目录下hosts文本文件内容,并将其输出到屏幕上。
时间: 2023-07-28 22:50:04 浏览: 110
Java程序使用字符界面与系统输入/输出界面进行数据通信
好的,这是一个关于Java IO流的问题。为了回答这个问题,我将分别介绍使用字节和字符输入流读取文件的方法。
1. 使用字节输入流读取文件
使用字节输入流可以读取文件的二进制数据,适用于读取任意类型的文件。以下是使用字节输入流读取文件的代码示例:
```java
import java.io.*;
public class ByteInputStreamExample {
public static void main(String[] args) {
try {
File file = new File("C:/Windows/System32/drivers/etc/hosts");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String content = new String(data, "UTF-8");
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码使用了FileInputStream类来读取文件的二进制数据,将数据存储在一个byte数组中,然后将其转换为字符串格式并输出到屏幕上。
2. 使用字符输入流读取文件
使用字符输入流可以读取文本文件的字符数据,适用于读取文本文件。以下是使用字符输入流读取文件的代码示例:
```java
import java.io.*;
public class CharInputStreamExample {
public static void main(String[] args) {
try {
File file = new File("C:/Windows/System32/drivers/etc/hosts");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码使用了FileInputStream类和InputStreamReader类来读取文件的字符数据,并且使用BufferedReader类来提高读取效率。通过循环读取每一行的数据,并将其输出到屏幕上。
综上所述,以上就是使用字节和字符输入流读取文件的方法。需要注意的是,在读取文件时需要正确处理IO异常。
阅读全文