我的OS X的默认字符集是“UTF-8”,这与我正在研究的Java项目相同。问题是当路径包含中文字符时,File类及其某些方法无法正常工作。 (通常在unicode中用3个字节表示中文字符)
例如,我首先启动一个String变量=“xxx”,其中“xxx”是包含中文字符的有效路径。之后,我通过新文件(prevStringVar)创建一个File对象。当调用exists()方法时,它总是返回false。
调用listFiles()方法时更有线。
我认为问题会解决,如果在实例化File对象时可以指定Charset,比如构造函数File(String path,Charset charset)。
答案 0 :(得分:1)
只需将方法称为 file = new File(“afile”),即可在Java代码中创建文件对象的实例。这实际上并没有在你的文件系统中创建一个文件,直到你写了一些东西,并刷新缓冲区(关闭将刷新缓冲区)。
尝试使用简单的英语单词,例如“afile”,而不是包含中文字符。这将消除字符编码的问题。一旦你在那里工作,然后更改文件名,看看你的问题是否得到解决。