日期:2014-05-20  浏览次数:20521 次

如何输出带有中文字符的文件名
我需要使用一个java program 去对一系列文件进行处理,有些文件的名字含有中文字
符。处理后结果输出有两列,第一列是文件的名字,第二列是针对这个文件的相应结果
。但是输出来的文件名字中的中文确变成了乱码。比如下图所示。



请问如何才能解决这
个问题。

有关读入文件名的code 是
File dir = new File(newDirName);
File[] files = dir.listFiles();
for (File file: files){

  String path=file.getPath( );
String[]  elems = path.split(“\”)
String ID = elems[elems.length -1];

}


有关输出文件名的code 是

DataOutputStream output = new DataOutputStream(new 
BufferedOutputStream(new FileOutputStream(scoreFile)));
output.writeBytes(docid);

Java 乱码 中文 输入输出

------解决方案--------------------
引用:
我改成output.write(docid.getBytes());就行了。能讲讲为什么吗?谢谢



Quote: 引用:

output.writeBytes(docid);改为
output.writeBytes(docid.getBytes());看看
传输char和byte之间的转换有问题,不应该传输char,而应该是byte,这样就不会出错了,你注意下char和byte之间的区别。