2016-02-22 3 views
0

Итак, для школьного проекта мне нужно сохранить данные учетной записи пользователя в текстовом файле, и если вы заходите в систему, программа должна прочитать из текстового файла, чтобы узнать, существует ли пользователь.Текстовый файл Java, не обновляющийся до открытия

Теперь работа по написанию и чтению, но моя проблема в том, что содержимое текстового файла не обновляется, пока я не открою файл в eclipse. После того как я открою файл, я вижу, что новое содержимое неожиданно появляется в файле.

Это мой код прямо сейчас:

 String path = context.getRealPath("/"); 
     path = path.substring(0, path.length() - 71); 
     path = path + "\\v2iac14\\src\\main\\resources\\accountIDs.txt"; 

     File file = new File(path); 

     if (!file.exists()) { 
      file.createNewFile(); 
     } 

     FileWriter fOut = new FileWriter(file, true); 
     fOut.append("e:" + username + ";p:" + password + ";i:" + id + ";c:-----;"); 
     fOut.flush(); 
     fOut.close(); 

И как я прочитал файл:

InputStream inputStream = getClass().getClassLoader().getResourceAsStream("accountIDs.txt"); 
    String result = null; 
    try { 
     result = IOUtils.toString(inputStream); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return result; 

Я уже пробовал несколько методов записи в файл, но проблема остается такой же ..

+0

Как и в сторону, вы можете быть осторожным с использованием 'IOUtils' (от Обще-IO) в школьное задание, если вы не знаете наверняка, что сторонние библиотеки разрешены. Насколько я помню, все мои поручения запрещают мне использовать любые сторонние библиотеки. – rmlan

+0

Ничего не упомянуто об этом;) – Niek

ответ

0

То, как вы получаете свой путь к файлу, не то же самое, я уверен, что вы не пишете файл, который хотите прочитать позже.

String path = context.getRealPath("/"); 
path = path.substring(0, path.length() - 71); 
path = path + "\\v2iac14\\src\\main\\resources\\accountIDs.txt"; 

Возможно, вам лучше сохранить одну и ту же конструкцию пути в обеих функциях.
Не забудьте ввести код взаимозависимого!

InputStream inputStream = getClass().getClassLoader().getResourceAsStream(path); 
+0

Я удалил строку с входным потоком и заменил ее буферизированным считывателем следующим образом: http://stackoverflow.com/questions/4716503/reading-a-plain-text-file-in-java Это решило мою проблему, спасибо! – Niek

Смежные вопросы