40使用字节流读取文件乱码问题

Posted zhuifeng-mayi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了40使用字节流读取文件乱码问题相关的知识,希望对你有一定的参考价值。

写出中文

向txt文件中写出中文,通过下面代码的演示,因为一个中文占2个字节,所以按照字节写出中文时会出现乱码的情况。

package com.sutaoyu.IO;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class IO_test_6 {
    public static void main(String[] args) {
        FileOutputStream fos = null;
        try{
            fos = new FileOutputStream("word.txt");
            String msg = "好好学习";
            //fos.write(msg.getBytes());
            //每次写出3个字节,因为一个中文占用2个字节,所以导致乱码
            fos.write(msg.getBytes(),0,3);
            //换行
            fos.write("
".getBytes());
            fos.write("天天向上".getBytes());
            fos.flush();
        }catch(FileNotFoundException e) {
            e.printStackTrace();
        }catch(IOException e) {
            e.printStackTrace();
        }
    }
}

读取中文

从txt文件中读取文件,下面代码也出现了乱码问题

package com.sutaoyu.IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class IO_test_7 {
    public static void main(String args) throws IOException {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("word.txt");
            byte[] arr = new byte[3];
            int temp;
            while((temp = fis.read(arr)) != -1) {
                System.out.println(new String(arr,0,temp));
            }    
        }catch(FileNotFoundException e) {
            e.printStackTrace();
        }catch(IOException e) {
            e.printStackTrace();
        }
    }
}

 

以上是关于40使用字节流读取文件乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

java字节流读txt文件出现乱码怎么解决?

22.字符流

字节流读取和写入文件中中文

Java IO

java字节流对汉字输出为乱码的问题

java 字符流 字节流