我有这段代码:
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是好的。