我有以下问题:我需要输入一个 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
方法。 (FileReader
是 Reader
的后代)。
我不打算实现整个逻辑,但这里有一个框架可以处理。
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/