为啥我用字节流输出中文时会出现乱码,但是拷贝的时候就可以拷贝啊

为啥我用字节流输出中文时会出现乱码,但是拷贝的时候就可以拷贝啊。有没有吴彦祖回答一下

FileInputStream fis=new FileInputStream("Game\\\\a.txt");
FileOutputStream fos=new FileOutputStream("C:\\Users\\86188\\IdeaProjects\\java\\Game\\b.tet");
int b;
byte b1[]=new byte[1024*1024*5];
while ((b=fis.read(b1))!=0){
  fos.write(b1,0,b);
}
fis.close();
fos.close();

    }
}


我在a文件下写了中文,一个中文是两个字节,理应来说拷贝应该也会出现乱码啊,可是我在b文件中没有发现,为啥啊。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7659475
  • 这篇博客你也可以参考下:给出两个有序的整数数组A和B,请将数组B合并到数组A中,变成一个有序的数组。
  • 除此之外, 这篇博客: 将字符串B插入字符串A,有多少种插入办法可以使新串是一个回文串中的 一,题目描述 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。

    例如:

    A = “aba”,B = “b”。这里有4种把B插入A的办法:

    • 在A的第一个字母之前: “baba” 不是回文
    • 在第一个字母‘a’之后: “abba” 是回文
    • 在字母‘b’之后: “abba” 是回文
    • 在第二个字母’a’之后 “abab” 不是回文

    所以满足条件的答案就是2

    输入描述:

    每组输入数据共两行。

    第一行为字符串A

    第二行为字符串B

    字符串长度均小于100且只包含小写字母

    输出描述:

    输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数

完整拷贝,数据正常,中文就能显示。程序输出没有考虑字符编码就会乱码。