读取文件名中无效编码的文件

时间:2014-03-28 14:11:08

标签: java file encoding

我有这段代码:

File dir = new File("/home/user/somedir");
for (File child : dir.listFiles()) {
    System.out.println(child.getName());
    if(!child.isDirectory()){
        readLines(child.getPath()); //do something with this file
    }   
}

我得到了这个输出:

cestino
arabika
wkurwi�%87_si�%99
java.io.FileNotFoundException: /home/user/somedir/wkurwi�%87_si�%99 (No such file or directory)

child.renameTo()也不起作用。

new FileReader(child)代替child.getPath()也不起作用:

java.io.FileNotFoundException: /home/user/somedir/wkurwi�%87_si�%99 (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileReader.<init>(FileReader.java:72)

我知道如果我手动更改文件名,那么文件可以很容易阅读。但是为什么这个文件是由listFiles方法列出的,但我不能用这个名字读取文件?有什么解决方案吗?我有很多这样的文件有错误的编码,所以我不能手动更改所有名称:)但如果有一些自动方法来更改他们的名称,甚至file1,file2是好的。

0 个答案:

没有答案