Как вводить текст из файла и выводить в другой - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь взять текст строки из текстового файла input.txt и построчно вывести этот же текст в выходной файл output.txt

Я пробовал это:

public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
    FileReader FR = new FileReader("C:\\FileLocation\\inputhashes.txt");
    BufferedReader BR = new BufferedReader(FR);
    PrintWriter PW = new PrintWriter("C:\\FileLocation\\outputtest.txt");
    for (int i = 0; i < 8 ; i++) {
        PW.println(BR.readLine());
    } 
}

Однако это не работает, и я не уверен, почему, файл outputtest.txt полностью пуст.

Когда я пытаюсь

 System.out.println(BR.readLine());

Консоль отображает правильные результаты, которые яожидать.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018
File inputFile = new File("inputFilePath");
File outputFile = new File("outputFilePath");

String output;
StringBuilder stringBuilder = new StringBuilder();

try (BufferedReader buffRead = new BufferedReader(new FileReader(inputFile))) {

    String line;
    while ( (line = buffRead.readLine()) != null) {
        stringBuilder.append(line + "\n");
    }
    output = stringBuilder.toString();
} catch (Exception e) {
    // handle exception
}

try (BufferedWriter buffWrite = new BufferedWriter(new FileWriter(outputFile))) {
    buffWrite.write(output);
} catch (Exception e) {
    // handle exception
}
0 голосов
/ 20 декабря 2018

Следующий код копирует содержимое из одного файла в другой, как упоминает @Robert Harvey, возможно, вы не закрываете свои файлы должным образом.

        BufferedReader reader = Files.newBufferedReader(Paths.get("C:\\Users\\ngueno\\Desktop\\File 1.txt"));
        BufferedWriter writer = Files.newBufferedWriter(Paths.get("C:\\Users\\ngueno\\Desktop\\File 2.txt"), StandardOpenOption.WRITE);

        String line;

        while( (line = reader.readLine()) != null ) {
            writer.write(line);
        }

        reader.close();
        writer.flush();
        writer.close();
...