2014-08-31 2 views
1

Я использовал пример кода на веб-сайте где-то и это выглядит следующим образом:PrintWriter создает файл, но не писать

package gdt.enlightening; 

import notify.*; 
import javax.swing.*; 
import java.io.*; 
import java.util.logging.Level; 
import java.util.logging.Logger; 

public class export { 
    public static void Export(String path) { 

     try { 
      // Package.json 
      File file = new File(path + "/package.json"); 

      FileWriter pw = new FileWriter(file); 
      pw.write("test"); 
      pw.write("Hi!"); 

      pw.write(" \"id\": \"" + main.packageID + "\",\r\n"); 
      pw.write(" \"name\": \"test\","); 

      notify.Notify.info("GDT Enlightening", "Finished exporting without errors."); 
     } catch (Exception e) { 
      System.out.println(e.toString()); 
     } 
    } 
} 

Это создает файл, но оставляет его совершенно пустым. Похоже, я не понимаю, почему. Нужен ли мне объект «Файл»?

Я пробовал различные решения, найденные здесь, но он не работает. Я также играл с методом печати.

EDIT: Зафиксировано вызова pw.close() в конце

+0

Ну, это должно работать (отлично работает для меня). Вы уверены, что ищете правильный файл? – Dici

+0

Что такое путь? Пожалуйста, дополните. –

+0

В этом коде нет ничего плохого. Возможно, вы ищете неправильную папку. – Boann

ответ

3

Вы должны добавить pw.close(), чтобы решить эту проблему.

Иначе данные будут потеряны в буфере.

+0

Для обучения ** pw.flush() ** будет вытолкнуть все данные на диск и оставить файл открытым для дальнейшей записи. –