簡體   English   中英

BufferedReader / BufferedWriter逐行輸出

[英]BufferedReader/BufferedWriter Output line by line

我有以下問題:我需要輸入12行的文件。 每行包含8個字符。 我必須將其輸出到8行12個字符的文件中。 我必須逐行讀取輸入,並同時輸出每一行。 因此,不允許我先閱讀輸入,閱讀后只能切成8行,每行12個字符。 我正在使用BufferedReader讀取文件,並使用BufferedWriter寫入文件。 因此,通過示例:

輸入:
12345678
qwertyui
Asdfghjk

輸出:
12345678qwer
蒂亞斯德菲格

編輯:這確實是一項家庭作業。

BufferedWriter bufferedWriter = null;
    FileReader fr;

    try {
        fr = new FileReader(new File(directory to file));
        bufferedWriter = new BufferedWriter(new FileWriter(directory to file);

        BufferedReader br = new BufferedReader(fr);
        String line = br.readLine();

        while (line != null) {

            bufferedWriter.write(output);

            bufferedWriter.newLine();

            line = br.readLine();
        }

        br.close();

    } catch (Exception e) {
        e.printStackTrace();

    } finally {
        //Close the BufferedWriter
        try {
            if (bufferedWriter != null) {
                bufferedWriter.flush();
                bufferedWriter.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

這就是我讀取輸入文件並寫入輸出文件的方式,這是我目前的代碼。

使用Reader類的read方法。 FileReaderReader的后代)。 我不會實現整個邏輯,但是這里是一個框架。

FileReader inputStream = null;
FileWriter outputStream = null;

try {
    inputStream =
        new FileReader("inputfile.txt");
    outputStream =
        new FileWriter("outputfile.txt");

    int c;
    int counter = 1;
    while ((c = inputStream.read()) != -1) {
        //keep a counter that will cycle for 12 characters
        //check if c represents a alphabet or number, write it to file else skip 
        //when counter is 12 write a newline
        outputStream.write(c);
    }
} finally {
    if (inputStream != null) {
        inputStream.close();
    }
    if (outputStream != null) {
        outputStream.close();
    }
}

read方法使您可以控制要讀取的字符數:

參見BufferedReader#read

相同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM