То, что я делаю, - это создание двух узлов, которые будут общаться друг с другом через текстовые файлы, например: Узел 0 является соседом с Узлом 1 и наоборот. Узел 0 откроет текстовый файл из 0to1.txt, а Узел 1 откроет текстовый файл из 1to0.txt.
Я проверяю создание этих файлов в этом коде:
for(Integer i: neighbors){
File file = new File("from" + myId + "to" + i + ".txt");
try{
boolean fileMade = file.createNewFile();
if(!fileMade){
System.err.println("Node " + myId + ": File could not be created.\n Please delete the files before trying again.");
System.exit(1);
}
/**
boolean fileMade = file.createNewFile();
while(!fileMade){
System.out.println("Node " + myId + ": File is already present.");
System.out.println("Node " + myId + ": Deleting file...");
file.delete();
System.out.println("Node " + myId + ": File deleted");
System.out.println("Node " + myId + ": Trying again...");
fileMade = file.createNewFile();
}
*/
System.out.println("Node " + myId + ": File " + file.getName() + " successfully created.");
}
catch(Exception e){
e.printStackTrace();
}
Как только эти файлы были открыты, я открываю их для записи в них.
Каждый узел будет воспринимать данные из этих «каналов», которые являются текстовыми файлами. При чтении я открываю эти текстовые файлы с помощью RandomAccessFile. Когда я пишу, я открываю эти текстовые файлы с помощью FileWriter / BufferedWriter.
Проблема в том, что когда я пытаюсь открыть текстовые файлы для чтения с помощью RandomAccessFile, он выдает исключение FileNotFoundException. Я попытался запустить f.exist (), и он также оказывается ложным.
Почему он не создает файл / не подтверждает, что файл существует?
Вот код:
for(Integer n: neighbors){
RandomAccessFile raf = null;
File f = new File("from" + n + "to" + nodeID + ".txt");
System.out.println(f.exists());
System.out.println(f.canRead());
//FileReader fr = null;
try{
System.out.println("Trying to open file: " + "from" + n + "to" + nodeID + ".txt");
//System.out.println("Node " + nodeID + ": Setting up Random Access File");
//fr = new FileReader(new File("from" + n + "to" + nodeID + ".txt"));
//System.out.println(fr.read());
//fr.close();
raf = new RandomAccessFile(f, "r");
raf.seek(offsetList.get(n));
/**