1ое задание
unknown
java
3 years ago
2.6 kB
22
Indexable
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.StandardCharsets;
public class BufferTask {
public static void RefactorFile() throws IOException {
String inputFileName = "File.txt";
String outputFileName = "newFile.txt";
// Открытие входного и выходного файловых каналов
try (FileChannel inputChannel = new FileInputStream(inputFileName).getChannel();
FileChannel outputChannel = new FileOutputStream(outputFileName).getChannel()) {
// Создание буферов для чтения и записи данных
ByteBuffer inputBuffer = ByteBuffer.allocate(1024);
ByteBuffer outputBuffer = ByteBuffer.allocate(1024);
// Чтение данных из входного файла и запись их в выходной файл
while (inputChannel.read(inputBuffer) != -1) {
inputBuffer.flip(); // Подготовка буфера для чтения
// Модификация данных: удаление цифр
StringBuilder modifiedData = new StringBuilder();
while (inputBuffer.hasRemaining()) {
byte b = inputBuffer.get();
if (Character.isLetter(b) || b == ' ') {
modifiedData.append((char) b);
}
}
// Запись модифицированных данных в выходной буфер
outputBuffer.clear();
outputBuffer.put(modifiedData.toString().getBytes(StandardCharsets.UTF_8));
outputBuffer.flip(); // Подготовка буфера для записи
// Запись данных из выходного буфера в выходной файл
while (outputBuffer.hasRemaining()) {
outputChannel.write(outputBuffer);
}
inputBuffer.clear(); // Подготовка буфера для следующей порции данных
}
}
}
public static void main(String[] args) {
try {
RefactorFile();
System.out.println("Файл успешно преобразован.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Editor is loading...