Advertisement
fatalryuu

Untitled

Jun 8th, 2023
720
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.31 KB | None | 0 0
  1. import java.io.*;
  2. //удалить ненужные импорты - Ctrl + Alt + O (это о, не ноль)
  3. import java.nio.file.Files;
  4. import java.nio.file.Paths;
  5. import java.nio.file.StandardOpenOption;
  6. import java.util.ArrayList;
  7. import java.util.Scanner;
  8.  
  9. class Main {
  10.     public static void main(String[] args) throws IOException {
  11.         //метод получения пути к файлу и проверка на его существование
  12.         //ввод пока файл нормальный не будет введен
  13.         //можешь путь держать как глобальную переменную, а можешь пробрасывать по функциям, как сам хочешь
  14.         createMenu();
  15.     }
  16.  
  17.     public static void createMenu() throws IOException {
  18.         Scanner scanner = new Scanner(System.in);
  19.         int choice;
  20.         do {
  21.             printMenu();
  22.             choice = getMenuChoice();
  23.         } while (choice != 0);
  24.         scanner.close();
  25.     }
  26.  
  27.     public static void printMenu() {
  28.         //тут посмотри что IDE советует, классная вещь
  29.         System.out.println("1. Добавить строку в файл\n" +
  30.                 "2. Удалить последнюю строку из файла\n" +
  31.                 "3. Вывести содержимое файла\n" +
  32.                 "4. Очистить файл\n" +
  33.                 "0. Конец программы");
  34.     }
  35.  
  36.     public static int getMenuChoice() throws IOException {
  37.         Scanner scanner = new Scanner(System.in);
  38.         System.out.print("Ваш выбор: ");
  39.         int choice = scanner.nextInt();
  40.         switch (choice) {
  41.             case (0) -> System.out.println(0); //удалить
  42.             case (1) -> addLine();
  43.             case (2) -> deleteLastLine();
  44.             case (3) -> showWhatInside();
  45.             case (4) -> removeAll();
  46.         }
  47.         return choice;
  48.     }
  49.  
  50.     //разберись как менять true/false и используй только эту функцию
  51.     //вынеси Reader тоже в такую функцию, чтобы кодстайл одинаковый был
  52.     public static BufferedWriter createWriter() throws IOException {
  53.         return new BufferedWriter(new FileWriter("Text.txt", true));
  54.     }
  55.  
  56.     public static void addLine() throws IOException {
  57.         Scanner sc = new Scanner(System.in);
  58.         BufferedWriter buff = createWriter();
  59.         System.out.println("Что будет хранится в этой строке: ");
  60.         //говно название
  61.         String usertext = sc.nextLine();
  62.         buff.append(usertext);
  63.         buff.newLine();
  64.         buff.close();
  65.     }
  66.  
  67.     public static void showWhatInside() throws IOException {
  68.         //в метод
  69.         BufferedReader reader = new BufferedReader(new FileReader("Text.txt"));
  70.         //говно название, типо currentLine
  71.         String c;
  72.         //Выведи сообщение "Содержимое вашего файла:\n"
  73.         while ((c = reader.readLine()) != null) {
  74.             System.out.println(c);
  75.         }
  76.         //sout("\n")
  77.     }
  78.  
  79.     public static void removeAll() throws IOException {
  80.         //в метод
  81.         //говно название
  82.         BufferedWriter bufff = new BufferedWriter(new FileWriter("Text.txt", false));
  83.     }
  84.  
  85.     public static void deleteLastLine() throws IOException {
  86.         //зачем тут вызываешь??
  87.         sumOfLines();
  88.         //в метод
  89.         BufferedReader reader = new BufferedReader(new FileReader("Text.txt"));
  90.         ArrayList<String> lines = new ArrayList<>();
  91.         int i = 0;
  92.         try {
  93.             while (i != sumOfLines()) {
  94.                 lines.add(reader.readLine());
  95.                 i++;
  96.             }
  97.             reader.close();
  98.         } catch (IOException e) {
  99.             System.out.println(e.getMessage());
  100.         }
  101.         //почему бы просто не читать до i + 1 != sumOfLines(), чтобы не удалять ничего
  102.         //плюс тут ошибка вылетает, если с пустым файлом вызвать
  103.         lines.remove(lines.size() - 1);
  104.         removeAll();
  105.         //в метод
  106.         BufferedWriter buff = new BufferedWriter(new FileWriter("Text.txt", true));
  107.         for (String line : lines) {
  108.             //посмотри что просят
  109.             buff.append(line + "\n");
  110.         }
  111.         buff.close();
  112.     }
  113.     public static int sumOfLines() {
  114.         //если тут переменная с названием, то и везде сделай
  115.         String filePath = "Text.txt"; // путь к файлу
  116.         //говно название, counter
  117.         int count = 0; // счетчик строк
  118.  
  119.         //в метод
  120.         try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
  121.             //бесполезная переменная
  122.             String line;
  123.             while ((line = reader.readLine()) != null) {
  124.                 count++;
  125.             }
  126.             return count;
  127.         } catch (IOException e) {
  128.             System.out.println(e.getMessage());
  129.         }
  130.         return 0;
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement