Как работать с файлами в Java
Узнайте, как работать с файлами в Java, включая создание, чтение, запись и удаление, с примерами кода для новичков!
В этой статье мы рассмотрим, как осуществлять работу с файлами в Java, включая создание, чтение, запись и удаление файлов. Для работы с файлами в Java используются классы из пакета java.io и java.nio .
Создание файла
Для создания файла в Java используется класс File из пакета java.io . Вот пример создания нового файла:
import java.io.File; import java.io.IOException; public class Main < public static void main(String[] args) < try < File file = new File("example.txt"); if (file.createNewFile()) < System.out.println("Файл создан"); >else < System.out.println("Файл уже существует"); >> catch (IOException e) < System.out.println("Ошибка при создании файла"); e.printStackTrace(); >> >
Чтение файла
Для чтения файла используются классы FileReader и BufferedReader . Вот пример чтения файла:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Main < public static void main(String[] args) < try < FileReader fileReader = new FileReader("example.txt"); BufferedReader bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) < System.out.println(line); >bufferedReader.close(); > catch (IOException e) < System.out.println("Ошибка при чтении файла"); e.printStackTrace(); >> >
Запись в файл
Для записи в файл используются классы FileWriter и BufferedWriter . Вот пример записи в файл:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Main < public static void main(String[] args) < try < FileWriter fileWriter = new FileWriter("example.txt"); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); bufferedWriter.write("Пример текста"); bufferedWriter.newLine(); bufferedWriter.write("Еще одна строка"); bufferedWriter.close(); >catch (IOException e) < System.out.println("Ошибка при записи в файл"); e.printStackTrace(); >> >
Удаление файла
Для удаления файла используется метод delete() класса File . Вот пример удаления файла:
import java.io.File; public class Main < public static void main(String[] args) < File file = new File("example.txt"); if (file.delete()) < System.out.println("Файл удален"); >else < System.out.println("Файл не найден"); >> >
Теперь вы знаете основы работы с файлами в Java! 😊 Не забывайте практиковаться и изучать дополнительные материалы, чтобы углубить свои знания.
Форматирование строк
Базовой частью поддержки создания форматированного вывода в языке Java служит класс Formatter , включенный в пакет java.util . Он обеспечивает преобразования формата (format conversions) позволяющие выводить числа, строки и время и даты практически в любом понравившемся вам формате.
В классе Formatter объявлен метод format() , который преобразует переданные в него параметры в строку заданного формата и сохраняет в объекте типа Formatter .
Рассмотрим использование класса Formatter :
import java.util.Formatter; public class SimpleFormatString < public static void main(String[] args) < Formatter f = new Formatter(); f.format("This %s is about %n%S %c", "book", "java", '8'); System.out.print(f); >>
где %s называется спецификатором формата.
Следующий пример использует класс Formatter для отображения дробного числа:
import java.util.Formatter; public class FormatDemo1 < public static void main(String[] args) < double x = 1000.0 / 3.0; System.out.println("Строка без форматирования: " + x); Formatter formatter = new Formatter(); formatter.format("Строка c форматированием: %.2f%n", x); formatter.format("Строка c форматированием: %8.2f%n", x); formatter.format("Строка c форматированием: %16.2f%n", x); System.out.println(formatter); >>
2. Метод format() классов PrintStream, PrintWriter и String
Аналогичный метод format() объявлен у классов PrintStream и PrintWriter . System.out это статическая переменная типа PrintStream .
В Java 5 для классов PrintStream и PrintWriter добавлен метод printf() . Методы printf() и format() автоматически используют класс Formatter :
С помощью метода String. format() тоже возможно форматирование:
public class StringFormatDemo < public static void main(String[] args) < String str = String.format("Строка c форматированием: %16.2f", 1000.0 / 3.0); System.out.println(str); >>
3. Спецификаторы формата
%a Шестнадцатеричное значение с плавающей точкой
%b Логическое (булево) значение аргумента
%c Символьное представление аргумента
%d Десятичное целое значение аргумента
%e Экспоненциальное представление аргумента
%f Десятичное значение с плавающей точкой
%g Выбирает более короткое представление из двух: %е или %f
%o Восьмеричное целое значение аргумента
%n Вставка символа новой строки
%s Строковое представление аргумента
%x Шестнадцатеричное целое значение аргумента
4. Флаги формата
— | Выравнивание влево |
# | Изменяет формат преобразования |
0 | Выводит значение, дополненное нулями вместо пробелов. Применим только к числам. |
Пробел | Положительные числа предваряются пробелом |
+ | Положительные числа предваряются знаком +. Применим только к числам. |
, | Числовые значения включают разделители групп. Применим только к числам. |
( | Отрицательные числовые значения заключаются в скобки. Применим только к числам. |
Рассмотрим пример использования флагов:
public class FormatterDemo2 < public static void main(String[] args) < System.out.printf("%,.2f%n", 10000.0 / 3.0); System.out.printf("%, (.2f%n", -10000.0 / 3.0); System.out.printf("%09.2f%n", 10000.0 / 3.0); >>
В строке, определяющей формат, может задаваться индекс форматируемого параметра. Индекс должен следовать непосредственно за символом % и завершаться знаком $:
public class FormatterDemo3 < public static void main(String[] args) < System.out.printf("Hello %1$s!%n%1$s, how are you?%n" + "Welcome to the site %2$s", "John", "www.site.com"); >>
Общий синтаксис можно описать так:
%[аргумент_индекс][флаги][ширина][.точность]символ_преобразования
Язык программирования Java SE 8. Подробное описание.
Эта книга написана разработчиками языка Java и является полным техническим справочником по этому языку программирования. В ней полностью описаны новые возможности, добавленные в Java SE 8, включая лямбда-выражения, ссылки на методы, методы по умолчанию, аннотации типов и повторяющиеся аннотации. В книгу также включено множество поясняющих примечаний. В ней четко обозначены отличия формальных правил языка от практического поведения компиляторов.
Java является языком программирования общего назначения, ориентированным на параллельное выполнение и основанным на классах объектно-ориентированным языком. Он специально разрабатывался так, чтобы быть достаточно простым, так что многие программисты могут легко достичь высокой скорости работы.
Язык программирования Java является строго и статически типизированным. В дан ной спецификации четко различаются ошибки времени компиляции, которые могут и должны быть обнаружены во время компиляции, и ошибки, которые происходят во время выполнения.
Язык программирования Java — язык относительно высокого уровня, что проявляется, в частности, в том, что детали представления машинного кода в языке недоступны.
Сюда входят автоматическое управление памятью, обычно с использованием сборщика мусора (чтобы избежать проблем, связанных с явным освобождением памяти. Высокопроизводительные реализации сборки мусора могут ограничиваться работой в паузах выполнения программы, чтобы обеспечить возможность создания системных программ и приложений реального времени.
Язык не включает ни одной небезопасной конструкции, такой как доступ к массиву без проверки диапазонов индексирования, поскольку такие небезопасные конструкции могут приводить к неопределенному поведению программы.
Программа на языке Java обычно компилируется в набор команд байт-кода и бинарный формат, определенный в спецификации виртуальной машины Java The Java Virtual Machine Specification, Java SE 8 Edition.