java 字节流乱码_java用字节流读取中文乱码怎么解决?
时间: 2023-07-06 22:40:47 浏览: 265
java中文乱码的解决方法
Java字节流是以字节为单位进行操作的,对于中文字符来说,一个字符通常占用两个字节。因此,如果用字节流读取中文字符,则可能会出现乱码的情况。
解决方法如下:
1. 使用字符流代替字节流进行读取,这样可以直接读取字符而不会出现乱码。
2. 如果必须使用字节流读取中文字符,则需要对读取的字节进行编码转换。常用的编码方式有UTF-8、GBK等,具体使用哪种编码方式需要根据实际情况而定。
以下是使用字节流读取中文字符并进行编码转换的示例代码:
```java
FileInputStream fis = new FileInputStream("test.txt");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
String str = new String(bos.toByteArray(), "UTF-8");
fis.close();
bos.close();
System.out.println(str);
```
在上述代码中,首先使用字节流读取文件并将读取的字节写入ByteArrayOutputStream中,然后将ByteArrayOutputStream中的字节转换为字符串,并指定编码方式为UTF-8。
阅读全文