java中io流以utf8格式读取文件
时间: 2023-11-14 10:02:56 浏览: 65
在Java中,要以UTF-8格式读取文件,可以使用以下几种方法:
1. 使用InputStreamReader和BufferedReader:
使用FileInputStream读取文件的字节流,然后使用InputStreamReader将字节流转换为字符流,并指定编码格式为UTF-8。最后,使用BufferedReader按行读取文件内容。
```java
try {
FileInputStream fileInputStream = new FileInputStream("file.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
// 处理每一行的文本
System.out.println(line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
```
2. 使用Files和Charset:
使用Files类的readAllLines方法读取文件的所有行,然后使用指定的UTF-8字符集将字节转换为字符串。
```java
try {
List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("UTF-8"));
for (String line : lines) {
// 处理每一行的文本
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
```
以上是在Java中以UTF-8格式读取文件的两种常见方法。无论选择哪种方法,都需要确保文件的编码格式与指定的UTF-8格式一致,否则可能导致乱码问题。