私はファイルを読み込み、FileNotFoundExeptionを取得しようとします。file.setReadable(true)の後にファイルが読み込めない
File file = new File("News.out");
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
try{
in.readObject();
}
ファイルが実際にディレクトリに存在することを確認し、ファイルの「読み取り可能な」プロパティをチェックします。
は、その後、私は「読める」と「書き込み可能」プロパティ
file.setReadable(true);
file.setWritable(true);
System.out.println(file.canRead());
System.out.println(file.canWrite());
のprogrammatical設定を追加し、偽偽のログに入りました。
これは何故ですか?
EDIT:
私はJSR 203を試してみましたが、このコードを使用します。
Path path = FileSystems.getDefault().getPath(filename);
try(
final InputStream in = Files.newInputStream(path);
) {
ObjectInputStream objectInputStream = new ObjectInputStream(in);
newsStorage.setEntities((ArrayList<News>) objectInputStream.readObject());
} catch (NoSuchFileException e) {
createFile(path, filename);
handleException(e);
}
とのCreateFile()メソッド:
private void createFile(Path path, String string) {
try {
Files.newOutputStream(path, StandardOpenOption.CREATE);
} catch (IOException e1) {
e1.printStackTrace();
}
}
ファイルが作成されませんでした。
はFiles.newOutputStream(path, StandardOpenOption.CREATE);
がファイルを作成する必要があることを、私が正しく理解していますか?
アプリケーションをどのように実行しますか? –
@Ortomala Lokni Eclipse RCPアプリケーションです。Eclipse IDEからRun Configurationを使用して実行します。 –
'System.getProperty(" user.dir "))'を印刷し、 'News.out'が内部にあるかどうかを確認してください。 –