BufferedReader读取txt文件乱码
时间: 2023-09-08 12:13:28 浏览: 159
可能是因为读取的文本文件的编码格式与你的代码中指定的编码格式不一致。可以尝试以下方法解决:
1. 指定读取文件的编码格式,例如:
```java
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
```
2. 尝试使用其他编码格式进行读取,例如:
```java
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "GBK"));
```
3. 如果无法确定文件的编码格式,可以尝试使用第三方库进行自动检测和转换,例如:
```java
import org.mozilla.universalchardet.UniversalDetector;
// 自动检测文件编码格式
UniversalDetector detector = new UniversalDetector(null);
byte[] buf = new byte[4096];
int nread;
while ((nread = inputStream.read(buf)) > 0 && !detector.isDone()) {
detector.handleData(buf, 0, nread);
}
detector.dataEnd();
// 获取检测到的编码格式
String encoding = detector.getDetectedCharset();
if (encoding != null) {
// 转换编码格式
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, encoding));
}
```
阅读全文