1

我有以下问题:我需要输入一个 12 行的文件。每行由 8 个字符组成。我必须将它输出到一个 8 行 12 个字符的文件中。我必须逐行读取输入并同时输出每一行。因此,我不允许先阅读我的输入,然后在阅读后将其插入 8 行 12 个字符。我正在使用 BufferedReader 读取我的文件并使用 BufferedWriter 写入我的文件。举个例子:

输入:
12345678
qwertyui
asdfghjk

输出:
12345678qwer
tyuiasdfghjk

编辑:这确实是一个家庭作业。

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();
        }
    }

这就是我读取输入文件并写入输出文件的方式,这就是我目前拥有的代码。

4

2 回答 2

6

使用类的read方法Reader。(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();
    }
}
于 2012-03-01T14:20:05.797 回答
0

read 方法允许您控制要读取的字符数:

BufferedReader#read

写相同

于 2012-03-01T13:59:56.473 回答