Saving text to file java

Rukovodstvo

статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.

Java: сохранить / записать строку в файл

Введение Сохранение строки в файлы с помощью Java может быть выполнено несколькими способами. В этой статье мы покажем некоторые распространенные методы записи строки в файл. Вот список всех классов и методов, которые мы рассмотрим: * Files.writeString () * Files.write () * FileWriter * BufferedWriter * PrintWriter Files.writeString () Начиная с Java 11, класс Files содержит полезный служебный метод Files.writeString (). Есть два варианта этого метода. Самая простая форма требует Путь к файлу

Вступление

Сохранить строку в файлы можно несколькими способами с помощью Java. В этой статье мы покажем некоторые распространенные методы записи строки в файл.

Вот список всех классов и методов, которые мы рассмотрим:

Files.writeString ()

Начиная с Java 11, Files содержит полезный служебный метод Files.writeString() . Есть два варианта этого метода. Самая простая форма требует Path к файлу для записи и текстовое содержимое. Другой вариант также принимает необязательный CharSet :

 Path path = Paths.get("output.txt"); String contents = "Hello"; try < Files.writeString(path, contents, StandardCharsets.UTF_8); >catch (IOException ex) < // Handle exception >

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

Читайте также:  Android apk decompiler java

Files.write ()

String, как и другие объекты, можно преобразовать в byte[] . Метод Files.write() работает с байтами:

 Path path = Paths.get("output.txt"); String someString = "Hello World"; byte[] bytes = someString.getBytes(); try < Files.write(path, bytes); >catch (IOException ex) < // Handle exception >

Нет необходимости закрывать какие-либо ресурсы, так как мы сами не открывали никаких ресурсов.

FileWriter

FileWriter — один из самых простых способов записать текстовое содержимое в файл. Мы создадим File и передадим его в FileWriter чтобы «связать» их.

Затем мы просто используем FileWriter для записи в него:

 File output = new File("output.txt"); FileWriter writer = new FileWriter(output); writer.write("This text was written with a FileWriter"); writer.flush(); writer.close(); 

После использования писателя важно очистить и закрыть ресурсы. В качестве альтернативы вы можете сделать это с помощью синтаксиса try-with-resources

 try(FileWriter writer = new FileWriter("output.txt")) < writer.write("This text was written with a FileWriter"); >catch(IOException e) < // Handle the exception >

BufferedWriter

BufferedWriter — это объект-оболочка, который используется вокруг объектов типа Writer . Если у нас есть существующий Writer такой как FileWriter , мы можем обернуть его внутри BuffereWriter .

BufferedWriter лучше всего использовать, когда для файла write() В этом случае эти многократные записи временно сохраняются во внутренний буфер и записываются в файл только при наличии достаточного содержимого. Это позволяет избежать необходимости хранить каждый новый фрагмент текста в файле и вместо этого предоставляет соответствующий буфер для временного хранения.

Использование BufferedWriter намного эффективнее, чем FileWriter для множественной записи, но это не помогает с одной записью.

Фактически, использование BufferedWriter для одной записи приведет к ненужным накладным расходам. Для таких простых случаев FileWriter — лучший вариант.

 BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt")); 

BufferedWriter и FileWriter расширяют Writer поэтому у них одинаковые методы:

 try(BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) < writer.write("Written with BufferedWriter); >catch(IOException e) < // Handle the exception >

PrintWriter

PrintWriter позволяет нам форматировать текст перед его записью. Он содержит методы, к которым мы привыкли, такие как printf() , println() и т. Д. Давайте создадим PrintWriter :

 File output = new File("output.txt"); PrintWriter writer = new PrintWriter(output); 

Лучший способ работать с PrintWriter — использовать синтаксис try-with-resources

 try(PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) < // Write using the PrintWriter instance >catch < // Handle Exception >

Когда у нас есть PrintWriter , давайте рассмотрим некоторые из предоставляемых им методов.

PrintWriter с append ()

PrintWriter , как и StringBuilder предоставляет метод append() который позволяет нам добавлять содержимое в конец существующего файла.

Давайте appent() некоторый текст в пустой writer :

 writer.append("Welcome to my fruit store! From me, you can buy:\n"); writer.append("Apples"); writer.append("\n"); writer.append("Oranges"); writer.append("\n"); writer.append("Bananas"); 

Метод append() возвращает PrintWriter к которому он был вызван. Это позволяет append() и упорядочить их более аккуратно:

 writer.append("Welcome to my fruit store! From me, you can buy:\n"); writer.append("Apples\n").append("Oranges\n").append("Bananas\n"); 

PrintWriter с print ()

PrintWriter содержит методы для форматированной печати. К ним относятся print() , printf() и println() :

 writer.print("Welcome to my fruit store %f", 2.0); writer.printf("From me, you can buy %s and %s.", "apples", "oranges"); 

PrintWriter с записью ()

С помощью write() мы можем записывать в поток много различных типов текстового содержимого. Примеры включают массивы символов, строки и целые числа:

 char[] hello = ; writer.write(hello); writer.write("Welcome to my fruit store\n"); writer.write("From me, you can buy apples and oranges"); 

Метод write() принимает только контент без параметров форматирования, поэтому он похож на print() , но не может форматировать строки.

Чтобы завершить каждый PrintWriter в добавлении, печати или записи, важно очистить и закрыть поток:

Метод flush() «сбрасывает» содержимое в файл, а close() навсегда закрывает поток.

Примечание. Если вы используете try-with-resources , он автоматически очистит и закроет поток.

Заключение

В этой статье мы показали несколько распространенных методов записи строк в файлы. Есть много вариантов, потому что есть много возможных вариантов использования.

Мы рассмотрели Files.writeString() , Files.write() , а также классы FileWriter , BufferedWriter и PrintWriter

Licensed under CC BY-NC-SA 4.0

Источник

Saving text to file java

  • Introduction to Java
  • The complete History of Java Programming Language
  • C++ vs Java vs Python
  • How to Download and Install Java for 64 bit machine?
  • Setting up the environment in Java
  • How to Download and Install Eclipse on Windows?
  • JDK in Java
  • How JVM Works – JVM Architecture?
  • Differences between JDK, JRE and JVM
  • Just In Time Compiler
  • Difference between JIT and JVM in Java
  • Difference between Byte Code and Machine Code
  • How is Java platform independent?
  • Decision Making in Java (if, if-else, switch, break, continue, jump)
  • Java if statement with Examples
  • Java if-else
  • Java if-else-if ladder with Examples
  • Loops in Java
  • For Loop in Java
  • Java while loop with Examples
  • Java do-while loop with Examples
  • For-each loop in Java
  • Continue Statement in Java
  • Break statement in Java
  • Usage of Break keyword in Java
  • return keyword in Java
  • Object Oriented Programming (OOPs) Concept in Java
  • Why Java is not a purely Object-Oriented Language?
  • Classes and Objects in Java
  • Naming Conventions in Java
  • Java Methods
  • Access Modifiers in Java
  • Java Constructors
  • Four Main Object Oriented Programming Concepts of Java
  • Inheritance in Java
  • Abstraction in Java
  • Encapsulation in Java
  • Polymorphism in Java
  • Interfaces in Java
  • ‘this’ reference in Java

Источник

Java: Save/Write String Into a File

Saving a String into files can be done in a few ways using Java. In this article, we’ll show some common methods for writing a String into a file.

Here’s a list of all the classes and methods we’ll go over:

Files.writeString()

Since Java 11, the Files class contains a useful utility method Files.writeString() . This method comes in two variants. The most basic form requires a Path of the file to write to and the textual contents. The other variant also accepts an optional CharSet :

Path path = Paths.get("output.txt"); String contents = "Hello"; try < Files.writeString(path, contents, StandardCharsets.UTF_8); >catch (IOException ex) < // Handle exception > 

There is little room for flexibility here, but it works great if you need to write something down into a file quickly.

Files.write()

A String, like other objects, can be converted into a byte[] . The Files.write() method deals with bytes:

Path path = Paths.get("output.txt"); String someString = "Hello World"; byte[] bytes = someString.getBytes(); try < Files.write(path, bytes); >catch (IOException ex) < // Handle exception > 

There is no need to close any resources since we haven’t opened any resources ourselves.

FileWriter

FileWriter is one of the simplest ways to write some textual contents into a file. We’ll create a File instance and pass it into the FileWriter constructor to «bridge» them.

Then, we simply use the FileWriter instance to write to it:

File output = new File("output.txt"); FileWriter writer = new FileWriter(output); writer.write("This text was written with a FileWriter"); writer.flush(); writer.close(); 

After using the writer, it’s important to flush and close the resources. Alternatively, you can do this with the try-with-resources syntax:

try(FileWriter writer = new FileWriter("output.txt")) < writer.write("This text was written with a FileWriter"); > catch(IOException e)< // Handle the exception > 

BufferedWriter

BufferedWriter is a wrapper object that is used around objects of type Writer . If we have an existing Writer such as FileWriter , we can wrap it inside a BuffereWriter .

BufferedWriter is best used when there are multiple write() operations for a file. In this case, those multiple writes are temporarily stored into an internal buffer and written into a file only when there is enough content. This avoids having to store each new chunk of text into a file and instead provides an appropriate buffer for temporary storage.

Using a BufferedWriter is much more efficient than FileWriter for multiple writes, but it doesn’t help with a single write.

In fact, using BufferedWriter for a single write would cause unnecessary overhead. For such simple cases, FileWriter is a much better option.

Let’s create a BufferedWriter :

BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt")); 

BufferedWriter and FileWriter both extend Writer so they have the same methods:

try(BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) < writer.write("Written with BufferedWriter); > catch(IOException e) < // Handle the exception >

PrintWriter

PrintWriter lets us format the text before writing it down. It contains methods we’re used to, such as printf() , println() , etc. Let’s create a PrintWriter :

File output = new File("output.txt"); PrintWriter writer = new PrintWriter(output); 

A better way to work with a PrintWriter is with the try-with-resources syntax:

try(PrintWriter writer = new PrintWriter(new FileWriter("output.txt"))) < // Write using the PrintWriter instance > catch < // Handle Exception > 

Free eBook: Git Essentials

Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!

Once we have a PrintWriter instance, let’s explore some of the methods it provides.

PrintWriter with append()

PrintWriter , like the StringBuilder provides the append() method which allows us to append contents to the end of an existing file.

Let’s appent() some text to an empty writer :

writer.append("Welcome to my fruit store! From me, you can buy:\n"); writer.append("Apples"); writer.append("\n"); writer.append("Oranges"); writer.append("\n"); writer.append("Bananas"); 

The append() method returns the PrintWriter object it was called upon. This makes it possible to chain append() methods and organize them more neatly:

writer.append("Welcome to my fruit store! From me, you can buy:\n"); writer.append("Apples\n").append("Oranges\n").append("Bananas\n"); 

PrintWriter with print()

PrintWriter contains methods for formatted printing. These include print() , printf() , and println() :

writer.print("Welcome to my fruit store %f", 2.0); writer.printf("From me, you can buy %s and %s.", "apples", "oranges"); 

PrintWriter with write()

With write() , we can write many different types of textual contents into the stream. Examples include char arrays, Strings, and integers:

char[] hello = 'H', 'e', 'l', 'l', 'o', '!', '\n'>; writer.write(hello); writer.write("Welcome to my fruit store\n"); writer.write("From me, you can buy apples and oranges"); 

The write() method only accepts content without formatting options so it’s similar to print() , but can’t format Strings.

To finalize each PrintWriter «session» of either appending, printing, or writing, it’s important to flush and close the stream:

The flush() method «flushes» the contents into the file and close() permanently closes the stream.

Note: If you use the try-with-resources syntax, it’ll flush and close the stream automatically.

Conclusion

In this article, we’ve shown some common methods for writing strings into files. There are many options because there are many possible use-cases.

We’ve covered the Files.writeString() , Files.write() methods, as well as the FileWriter , BufferedWriter and PrintWriter classes.

Источник

Оцените статью