小编Pau*_*ang的帖子

源代码中的字符串与从文件中读取的字符串之间有什么区别?

在我的磁盘中有一个名为"dd.txt"的文件,它的内容是 \u5730\u7406

现在,当我运行这个程序

public static void main(String[] args) throws IOException {
    FileInputStream fis=new FileInputStream("d:\\dd.txt");
    ByteArrayOutputStream baos=new ByteArrayOutputStream();
    byte[] buffer=new byte[fis.available()];
    while ((fis.read(buffer))!=-1) {
        baos.write(buffer);
    }
    String s1="\u5730\u7406";
    String s2=baos.toString("utf-8");
    System.out.println("s1:"+s1+"\n"+"s2:"+s2);
}
Run Code Online (Sandbox Code Playgroud)

我得到了不同的结果

s1:??
s2:\u5730\u7406
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么吗?以及我如何读取该文件并获得与中文s1相同的结果?

java string file-io utf-8

17
推荐指数
2
解决办法
1574
查看次数

标签 统计

file-io ×1

java ×1

string ×1

utf-8 ×1