Работа с файлами в Java: примеры и руководство
Java имеет ряд функциональных возможностей для работы с файлами - чтения, записи, копирования, удаления и т.д. Некоторые из самых основных классов и интерфейсов, используемых для работы с файлами в Java:
1. Файловый класс java.io.File, который позволяет осуществлять работу с файлами и папками на компьютере или в Интернете. Он может быть использован для создания, чтения, переименования, копирования и удаления файлов и папок.
File file = new File("filename.txt");
if (file.exists()) {
System.out.println("Файл существует!");
} else {
System.out.println("Файл не существует.");
}
2. Файловый ввод-вывод, доступный через java.io.InputStream и java.io.OutputStream. Эти классы позволяют читать и записывать данные в файлы и другие источники данных.
try (FileInputStream in = new FileInputStream("input.txt");
FileOutputStream out = new FileOutputStream("output.txt")) {
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
3. Классы, поддерживающие буферизацию чтения и записи, такие как java.io.BufferedReader и java.io.BufferedWriter. Они увеличивают производительность операций чтения и записи за счет сокращения количества обращений к файловой системе.
try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
4. Классы, поддерживающие сериализацию объектов, такие как java.io.ObjectInputStream и java.io.ObjectOutputStream. Они позволяют записывать объекты в файлы и читать их назад в инстансы объектов.
SomeClass object = new SomeClass("Test", 123);
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.bin"))) {
out.writeObject(object);
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.bin"))) {
SomeClass object1 = (SomeClass) in.readObject();
System.out.println(object1.toString());
} catch (ClassNotFoundException | IOException ex) {
System.out.println(ex.getMessage());
}
Работа с файлами в Java достаточно разнообразна и может подойти для различных задач, требующих чтения и записи данных в файлы.