Java无法读取带有某些“的文件”;特别";人物
我编写了一个java程序,用java打印文件的长度Java无法读取带有某些“的文件”;特别";人物,java,linux,Java,Linux,我编写了一个java程序,用java打印文件的长度 import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; public class FTPTest { public static void main(String args[]) throws IOException {
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
public class FTPTest {
public static void main(String args[]) throws IOException {
File dirFile = new File("/home/chandakv/Desktop/test/vishal");
File[] ab = dirFile.listFiles();
for (int i = 0; i < ab.length; i++) {
System.out.println(ab[i].getName() + "\t" + ab[i].length());
}
}
}
在linux上,“ls-l”将文件大小显示为207字节。您应该将文件名字符写为unicode编码\uxxx
在您的代码中,如果所有unicode字符都转换为问号,则文件不存在请尝试使用UTF8编码创建一个新的
PrintStream
(不要使用默认的System.out
PrintStream
)
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(unicodeText);
您的代码如下所示:
import java.io.PrintStream;
File dirFile = new File("/home/chandakv/Desktop/test/vishal");
File[] ab = dirFile.listFiles();
PrintStream out = new PrintStream(System.out, true, "UTF-8");
for (int i = 0; i < ab.length; i++) {
out.println(ab[i].getName() + "\t" + ab[i].length());
}
导入java.io.PrintStream;
File dirFile=新文件(“/home/chandakv/Desktop/test/vishal”);
File[]ab=dirFile.listFiles();
PrintStream out=新的PrintStream(System.out,true,“UTF-8”);
for(int i=0;i
.lnk?该文件是Samba共享上的Windows快捷方式吗?.lnk文件通常与Windows关联。那么您是如何获取这些.lnk文件的呢?lnk是Windows用来指向exe的快捷方式文件的文件扩展名。不希望出现的行为到底是什么?例外?207以外的值?我认为文件名的Unicode编码有问题。我将制作一个简短的文件名,以一个Unicode字符开始,该字符需要UTF-16中的4个字节,然后查看Java认为文件名包含的字符的数值。
import java.io.PrintStream;
File dirFile = new File("/home/chandakv/Desktop/test/vishal");
File[] ab = dirFile.listFiles();
PrintStream out = new PrintStream(System.out, true, "UTF-8");
for (int i = 0; i < ab.length; i++) {
out.println(ab[i].getName() + "\t" + ab[i].length());
}