Как написать текстовый файл 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).

  • Что такое Apache Camel?
  • Как метод ArrayList contains () оценивает объекты?
  • Действительно ли возникают побочные пробуждения в Java?
  • Как читать текстовый файл из classpath в Java
  • Как настроить приложение JAX-RS, используя только annotations (без web.xml)?
  • Должны ли мы @ Использовать реализацию метода интерфейса?
  • Как шифровать String в Java
  • Regex Именованные группы в Java
  • Могу ли я наблюдать за сменой одного файла с помощью WatchService (а не всего каталога)?
  • Используйте String.split () с несколькими разделителями
  • Как определить частный метод тестирования с помощью PowerMock?
  • Interesting Posts

    Windows 8 не будет загружаться после обновления ОЗУ

    Флажок не установлен, когда я просматриваю список на Android

    Двойная загрузка Windows 7 с Windows 7

    Как я могу решить проблемы Windows PPTP VPN?

    Хорошее (желательно бесплатное), простое в использовании, привлекательное программное обеспечение блок-схемы

    Произошел сбой Windows 10

    «Программа для интерфейса». Что это значит?

    Как я могу предотвратить кражу данных у компании?

    Java, Classpath, Classloading => Несколько версий одного и того же jar / project

    Как очистить входной буфер в C?

    Векторизованный оператор IF в R?

    Что означает оператор?? =?

    Могу ли я потерять три IP-адреса в каждой сети при подключенной сетевой сети Xen?

    Извлеките ключ продукта Windows 8 с материнской платы

    Я хочу получить Year, Month, Day и т. Д. Из Java Date для сравнения с григорианской датой календаря на Java. Это возможно?

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