【发布时间】:2011-10-16 17:36:32
【问题描述】:
我有一个 UTF-8 文本文件 example.txt,其中包含:
c:/temp/file.txt
我使用这种方法读取文件内容:
public static String fileToString(final File file, final String charset) throws AppServerException
{
final byte[] buffer = new byte[(int) file.length()];
FileInputStream fileInputStream = null;
try
{
fileInputStream = new FileInputStream(file);
fileInputStream.read(buffer);
}
catch (final FileNotFoundException e)
{
throw new AppServerException(e.getMessage());
}
catch (final IOException e)
{
throw new AppServerException(e.getMessage());
}
finally
{
FileHelper.close(fileInputStream);
}
try
{
return new String(buffer,charset);
}
catch (UnsupportedEncodingException e)
{
throw new AppServerException(e.getMessage());
}
}
那我要检查c:/temp/file.txt这个文件是否存在:
String content = fileToString("example.txt","UTF8");
File file = new File(content );
System.out.println(file.exists());
exits() 返回 false 但文件确实存在。
如果我使用 notepad++ 将 example.txt 的编码更改为 ANSI,exists() 返回 true。
我已经尝试过使用:
"c:\temp\file.txt",
"c:\\temp\\file.txt",
"c:\\\\temp\\\\file.txt",
但没有成功。
我确实需要将该文件用作 UTF8。你有提示让方法 exists() 返回 true 吗?
【问题讨论】:
标签: java utf-8 filepath backslash