Как написать текстовый файл Java

Следующий код не создает файл (я не вижу файл в любом месте). Чего не хватает?

try { //create a temporary file String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format( Calendar.getInstance().getTime()); File logFile=new File(timeLog); BufferedWriter writer = new BufferedWriter(new FileWriter(logFile)); writer.write (string); //Close writer writer.close(); } catch(Exception e) { e.printStackTrace(); } 

6 Solutions collect form web for “Как написать текстовый файл Java”

Я думаю, что ваши ожидания и реальность не совпадают (но когда они когда-либо были;))

В принципе, если вы думаете, что файл написан и где файл на самом деле написан, не равны (хм, возможно, я должен написать оператор if ;))

 public class TestWriteFile { public static void main(String[] args) { BufferedWriter writer = null; try { //create a temporary file String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); File logFile = new File(timeLog); // This will output the full path where the file will be written to... System.out.println(logFile.getCanonicalPath()); writer = new BufferedWriter(new FileWriter(logFile)); writer.write("Hello world!"); } catch (Exception e) { e.printStackTrace(); } finally { try { // Close the writer regardless of what happens... writer.close(); } catch (Exception e) { } } } } 

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

 writer = new BufferedWriter(new FileWriter(logFile, true)); 

Я хотел бы добавить немного больше к MadProgrammer’s Answer.

В случае многострочной записи при выполнении команды

 writer.write(string); 

можно заметить, что символы новой строки опущены или пропущены в письменном файле, даже если они появляются во время отладки или если один и тот же текст печатается на терминале,

 System.out.println("\n"); 

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

 String newline = System.getProperty("line.separator"); 

а затем с помощью новой строки вместо «\ n». Это даст результат так, как вы этого хотите.

В java 7 теперь можно сделать

 try(BufferedWriter w = ....) { w.write(...); } catch(IOException) { } 

и w.close будет выполняться автоматически

Он не создает файл, потому что вы никогда не создали файл. Вы сделали для этого объект. Создание экземпляра не создает файл.

 File newFile = new File("directory", "fileName.txt"); 

Вы можете сделать это, чтобы сделать файл:

 newFile.createNewFile(); 

Вы можете сделать это, чтобы создать папку:

 newFile.mkdir(); 

Вы можете попробовать Java-библиотеку. FileUtils , у него есть много функций, которые записываются в файлы.

Он работает со мной. Убедитесь, что вы добавили «.txt» рядом с timeLog. Я использовал его в простой программе, открытой с помощью Netbeans, и он записывает программу в основную папку (где находятся папки builder и src).

  • Возьмите сегмент массива в Java без создания нового массива в куче
  • Запуск файла JAR в Windows
  • Как читать числовые строки в ячейках Excel в виде строки (а не числа)?
  • Windows 7 - Как подключить .jar к панели задач?
  • Java: проверено на исключение исключения исключений
  • КлассNotFoundException / NoClassDefFoundError в моем веб-приложении Java
  • Пример рабочего клиента Soap
  • Невозможно выполнить jar-файл: «нет основного атрибута манифеста»
  • Переменная макет в Swing
  • Java XML Parser для огромных файлов
  • Найти самый популярный элемент в массиве int
  • Interesting Posts

    UIImagePickerController нарушает внешний вид строки состояния

    Как обрабатывать недопустимые SSL-сертификаты с помощью Apache HttpClient?

    Доступ в Интернет не работает в подсистеме Windows для Linux

    Список каталогов в Python

    Как импортировать несколько рабочих листов из одного файла Excel в документ Microsoft Word в качестве связанных и обновляемых объектов?

    Каков самый короткий путь для красивой печати org.w3c.dom.Document в stdout?

    Как сопоставить IP-адрес на localhost?

    C # создавать / изменять / читать файлы .xlsx

    Интернет через Ethernet: DNS работает, ping не работает (Windows работает, Linux не работает)

    Excel 2010: Формула для суммы и даты возврата

    Как войти в «корневую» учетную запись по умолчанию в Windows Subsystem для Linux Bash terminal

    Как добавить программу в список с помощью правой кнопки мыши?

    Android: доступ к файлу базы данных sqlite для файлов с расширением .sqlite

    Странная возможная проблема «теневой копии», где два редактора показывают различное содержимое

    Как сохранить сборки ASP.NET в AppDomain в живых?

    Давайте будем гением компьютера.