Может ли bufferReader находиться в другом классе, а затем вызывать его в основном классе?

Я хочу иметь возможность читать txt-файл и вызывать bufferReader из класса, отличного от основного, возможно ли это? По сути, я хочу, чтобы консоль просила пользователя разместить текстовый файл, который он хочет, и, если он существует, он мог прочитать его и показать на консоли.

Public static void main(String[] args) throws IOException {
        System.out.println("Give me the path or the name of the file you want to encrypt : ");
        Scanner scanner = new Scanner(System.in);
        String checker = scanner.nextLine();
            if (checker.contains(".txt")) {
                try {
                    InputStream inputStream = new FileInputStream(checker);
                    Scanner sc = new Scanner(inputStream);
                    StringBuffer sb = new StringBuffer();
                    BufferedWriter bw = new BufferedWriter(new FileWriter("copy-"+checker));
                    while (sc.hasNextLine()) {
                        sb.append("\n" + sc.nextLine());

                    }
                    sc.close();
                    System.out.println(sb);
                    System.out.println(AES.encrypt(sb.toString()));
//                  append the result and make a new file... H-O-W?
                    bw.write(AES.encrypt(sb.toString()));
                    System.out.println(AES.decrypt(AES.encrypt(sb.toString())));
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            } else {
                System.out.println("The file does not exists.");
            }

Вместо Public static void main мне нужен такой класс, как (класс BufferReader{}, вызываемый основным классом)

Спасибо всем и извините за мой английский!


person Junior Developer    schedule 17.06.2021    source источник


Ответы (1)


Вы должны прочитать об объекте и классах. За вашу помощь вы можете решить свою проблему следующим образом.

class Main {
    Public static void main(String[] args) throws IOException {
          MyBuffClass c = new MyBuffClass();
          c.doStuff();
    }
}


class MyBuffClass {
    public void doStuff() {
        System.out.println("Give me the path or the name of the file you want to encrypt : ");
        Scanner scanner = new Scanner(System.in);
        String checker = scanner.nextLine();
            if (checker.contains(".txt")) {
                try {
                    InputStream inputStream = new FileInputStream(checker);
                    Scanner sc = new Scanner(inputStream);
                    StringBuffer sb = new StringBuffer();
                    BufferedWriter bw = new BufferedWriter(new FileWriter("copy-"+checker));
                    while (sc.hasNextLine()) {
                        sb.append("\n" + sc.nextLine());

                    }
                    sc.close();
                    System.out.println(sb);
                    System.out.println(AES.encrypt(sb.toString()));
//                  append the result and make a new file... H-O-W?
                    bw.write(AES.encrypt(sb.toString()));
                    System.out.println(AES.decrypt(AES.encrypt(sb.toString())));
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            } else {
                System.out.println("The file does not exists.");
            }
    }
}
person Pirate    schedule 17.06.2021