java - BufferedReader/BufferedWriter 逐行输出

标签 java bufferedreader bufferedwriter

我有以下问题:我需要输入一个 12 行的文件。每行由 8 个字符组成。我必须将它输出到一个 8 行 12 个字符的文件中。我必须逐行读取输入并同时输出每一行。所以我不允许先阅读我的输入,然后在我阅读它之后将其分成 12 个字符的 8 行。我正在使用 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();
    }
}

关于java - BufferedReader/BufferedWriter 逐行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517329/

相关文章:

java - 今天我们真的需要在 close() 之前调用 flush() 吗?

Java:复制文本文件时覆盖一个字符

java - 使用 BufferedWriter 写入字符串

java - 如何在 Java 中将 SID 转换为字符串,反之亦然?

java - 如何将删除前导 0 的字符串转换为日期

java - 缓冲读取器线程安全吗?

java - 使用 BufferedReader 对多维数组中的行进行计数

java - 编译器是否可以有最大输出?

java - 使用 ASM 字节码进行测试

java - Android:向下缩放固定布局