У меня есть текстовый файл 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, но файл действительно существует.
Если я изменяю кодировку example.txt на ANSI с помощью notepad ++, существует() вернуть true.
Я уже пытался использовать: "c:\temp\file.txt"
, "c:\\temp\\file.txt"
, "c:\\\\temp\\\\file.txt"
, но безуспешно.
Мне действительно нужно использовать файл как UTF8.Есть ли у вас какие-либо советы, чтобы метод exist () возвращал true?