如何输出带有中文字符的文件名

winematrix 2013-07-15 05:13:14
我需要使用一个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);

...全文
302 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 9 楼 winematrix 的回复:
我改成output.write(docid.getBytes());就行了。能讲讲为什么吗?谢谢 [quote=引用 3 楼 fangmingshijie 的回复:] output.writeBytes(docid);改为 output.writeBytes(docid.getBytes());看看
[/quote]传输char和byte之间的转换有问题,不应该传输char,而应该是byte,这样就不会出错了,你注意下char和byte之间的区别。
winematrix 2013-07-15
  • 打赏
  • 举报
回复
我改成output.write(docid.getBytes());就行了。能讲讲为什么吗?谢谢
引用 3 楼 fangmingshijie 的回复:
output.writeBytes(docid);改为 output.writeBytes(docid.getBytes());看看
失落夏天 2013-07-15
  • 打赏
  • 举报
回复
首先你确定一下在控制台输入的时候正确读出来了没有。
attach_finance 2013-07-15
  • 打赏
  • 举报
回复
引用 6 楼 abcmsnet 的回复:
request和response设置为utf-8
大哥,别人就是用流操作文件,这request和response哪里来的啊????!
  • 打赏
  • 举报
回复
request和response设置为utf-8
shengfenglai 2013-07-15
  • 打赏
  • 举报
回复
改一下编码 。
「已注销」 2013-07-15
  • 打赏
  • 举报
回复
把读入的path之类的都输出来看看,确定是输出编码问题,还是读入的时候已经是乱码了。
  • 打赏
  • 举报
回复
output.writeBytes(docid);改为 output.writeBytes(docid.getBytes());看看
winematrix 2013-07-15
  • 打赏
  • 举报
回复
我改成writeUTF 仍然是乱码. 请看下面的截图.请问还有什么其他的方法吗? 谢谢.

  • 打赏
  • 举报
回复
writeBytes改为writeUTF

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧