2013-08-18 3 views
0

Привет, ребята, я пытаюсь передать строковый параметр, чтобы записать эту строку в текстовый файл. Однако, похоже, у меня проблемы. Он отлично работает, когда я компилирую его в основном методе, он создает файл и все значения, которые я пишу в него. Однако, когда я использую метод. Он вообще не создает файл, даже с параметрами, которые я передал. Я намерен использовать этот метод в сервлете.Запись в текстовый файл методом, который принимает параметр строки

Ниже приведен метод, который я создал.

public class testWriteFile { 
    public static void writeToFile (String data) throws Exception { 
     Date dateNow = new Date(); 

     SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
     StringBuilder formatDDMMYYYY = new StringBuilder(sdf.format(dateNow)); 

     File file = new File(formatDDMMYYYY+".txt"); 

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

     FileWriter fileWritter = new FileWriter(file.getName(),true); 
     BufferedWriter bufferWritter = new BufferedWriter(fileWritter); 
     bufferWritter.write(data); 
     bufferWritter.close(); 

     System.out.println("Done"); 
    } 
} 

Могу ли я узнать, в чем проблема с кодом? Спасибо заранее!

+0

Что такое java verson? –

+0

версия 1.7.0_25 – Clearner88

+0

У меня все хорошо. Вам не нужно сначала создавать файл, но это не повредит. Вы уверены, что метод вызван (т. Е. Вы видите вывод «Готово»)? – Henry

ответ

0

Наконец, кажется, что проблема была решена, когда ОП печататься

System.out.println(file.getCanonicalPath()); 

Это было в другом каталоге, так как OP был с помощью IDE.

0

использовать полный путь ("D: /myfolder/a.txt") - все еще может держать его часть динамичной, как если окна

File f = new File("D:/myfolder/" + formatDDMMYYYY + ".txt"); 

Или Linux/Mac

File f = new File("/myfolder/" + formatDDMMYYYY + ".txt"); 

Марка убедитесь, что у вас есть разрешение на запись в моей папке и замените его на тот, который у вас есть, с помощью команды касания на системах linux/unix в терминале:

touch /myfolder/a.txt 
ls -l /myfolder/a.txt 

Должен показать текущую дату для этого файла