Открытие файла и сохранение сообщения. Чтение сообщения в строковую переменную для печати. Java / Netbeans - PullRequest
0 голосов
/ 08 мая 2020

Привет, мне нужна была помощь с этим упражнением, над которым я работаю. Мне нужно открыть файл с именем hello.txt и сохранить сообщение «Hello World!» в файле. Затем мне нужно закрыть файл, открыть его и прочитать сообщение в строковой переменной, чтобы распечатать его. Пока у меня есть этот код ниже. Есть ли у вас какие-нибудь предложения, как я могу успешно скомпилировать этот код?

package ProgrammingExercise11;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Input {

    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner in = new Scanner(System.in);
        File inputFile = new File(hello.txt);
        Scanner in = new Scanner(inputFile);
        PrintWriter out = new PrintWriter(hello.txt);
        out.println("Hello, World!");
        String line = in.nextLine();
        in.close();
        out.close();
    }

}

Ответы [ 2 ]

2 голосов
/ 08 мая 2020

Хорошо, давайте ответим на ваш вопрос.

Scanner in = new Scanner(System.in);
        File inputFile = new File(hello.txt);
        Scanner in = new Scanner(inputFile);
        PrintWriter out = new PrintWriter(hello.txt);
        out.println("Hello, World!");
        String line = in.nextLine();
        in.close();
        out.close();

Ваш код не компилируется, потому что вы ввели две переменные с одинаковым именем in, а вы не объявили hello.txt. Чтобы решить эту проблему, следуя вашей идее.

 public static void main(String[] args) throws Exception {
            String filePath = "hello.txt";
            File inputFile = new File(filePath);

            PrintWriter printWriter = new PrintWriter(inputFile);
            printWriter.write("Hello World!");
            printWriter.close();

            InputStream is = new FileInputStream(inputFile.getPath());
            BufferedReader buf = new BufferedReader(new InputStreamReader(is));
            String line = buf.readLine();
            System.out.println(line);

            is.close();
            buf.close();

    }

Добро пожаловать в мир java!

0 голосов
/ 08 мая 2020

Класс Files, начиная с Java 7, предоставляет stati c методы, которые работают с файлами, каталогами или другими типами файлов, что является более простым и гибким.

String file = "hello.txt";
Path filePath = Paths.get(file);
if (Files.isRegularFile(filePath)) {
    try(OutputStream fos = new FileOutputStream(file);
        InputStream fis = new FileInputStream(file)){
        // write message to file.
        String message = "Hello World!";
        byte[] messageBytes = message.getBytes();
        fos.write(messageBytes);

        // read message from file.
        byte[] receivedBytes = new byte[fis.available()];
        fis.read(receivedBytes);
        System.out.println(new String(receivedBytes));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
...