Задачі на файли

1. Дан текстовий файл, що містить цілі числа. Видалити з нього всі парні числа.
Відповідь:
import java.io.*;
import java.util.Random;

public class TFile1 {
    public static void main(String[] args) {

        try (BufferedWriter writerIn = new BufferedWriter(new FileWriter("src/taskFile/tFile1/input.txt", true));
             BufferedWriter writerOut = new BufferedWriter(new FileWriter("src/taskFile/tFile1/output.txt", false));
             BufferedReader reader = new BufferedReader(new FileReader("src/taskFile/tFile1/input.txt"))) {

            initInput(writerIn);
            String[] input = reader.readLine().split(" ");
            int count = 0;
            for (int i = 0; i < input.length; i++) {
                if (Integer.valueOf(input[i]) % 2 == 1) {
                    writerOut.append(String.valueOf(input[i]));
                    writerOut.append(" ");
                } else {
                    count++;
                }
            }
            writerOut.write("\nВидалено " + count + " чисел");
            writerOut.flush();
            reader.close();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }

    private static void initInput(BufferedWriter writerIn) throws IOException {
        Random random = new Random();
        for (int i = 0; i < 100; i++) {
            writerIn.append(String.valueOf(random.nextInt(100)));
            writerIn.append(" ");
        }
        writerIn.flush();
    }
}

2. У даному текстовому файлі видаліть всі слова, які містять хоча б одну цифру.
Відповідь:
import java.io.*;

public class TFile2 {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("src/taskFile/tFile2/input.txt"));
             BufferedWriter writer = new BufferedWriter(new FileWriter("src/taskFile/tFile2/output.txt", false))) {
            String[] line;
            String s;
            while ((s = reader.readLine()) != null) {
                line = s.split(" ");
                for (int i = 0; i < line.length; i++) {
                    if (isNotNumbers(line[i])) {
                        writer.append(line[i]);
                        writer.append(" ");
                    }
                }
                writer.append("\n");
            }
            writer.flush();
            reader.close();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }

    private static boolean isNotNumbers(String s) {
        for (int i = 0; i < s.length(); i++) {
            if ((s.charAt(i) >= 48) && (s.charAt(i) <= 57)) {
                return false;
            }
        }
        return true;
    }
}
3. Дан текстовый файл. Створіть новий файл, кажний рядок якого виводиться з відповідної строки вихідного файлу з перестановкою слів в зворотньому порядку.
Відповідь:
import java.io.*;

public class TFile3 {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("src/taskFile/tFile3/input.txt"));
             BufferedWriter writer = new BufferedWriter(new FileWriter("src/taskFile/tFile3/output.txt"))) {
            String[] lines;
            String s;
            while ((s = reader.readLine()) != null) {
                lines = s.split(" ");
                for (int i = lines.length - 1; i >= 0; i--) {
                    writer.append(lines[i] + " ");
                }
                writer.append("\n");
            }
            writer.flush();
            reader.close();
        } catch (IOException e) {
            e.getMessage();
        }
    }
}

Комментариев нет:

Отправить комментарий