Открытие файла RandomAccessFile не работает - PullRequest
0 голосов
/ 03 мая 2018

То, что я делаю, - это создание двух узлов, которые будут общаться друг с другом через текстовые файлы, например: Узел 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));
            /**
...