如何反转.txt文件的输出? 一个例子:
输入文件内容:
这是文件的开头。
第二行。
这是第三行。
第四行。
文件的结尾。
应该读入并打印以下文件:
文件的结尾。
第四行。
这是第三行。
第二行。
这是文件的开头。
这是我目前的代码:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopier {
public static void copyCharacters() throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("Motown.txt");
outputStream = new FileWriter("Motown_output.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
copyCharacters();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 0 :(得分:-2)
你应该能够
在这里,我正在使用Deque并获得它的descendingIterator:
public static void copyCharacters() throws IOException {
FileWriter outputStream = null;
BufferedReader bufferedReader = null;
Deque<String> fileContents = new ArrayDeque<>();
try {
outputStream = new FileWriter("motown_output.txt");
bufferedReader = new BufferedReader(new FileReader("motown.txt"));
String line;
while ((line = bufferedReader.readLine()) != null) {
fileContents.add(line);
}
for (Iterator<String> iterator = fileContents.descendingIterator(); iterator.hasNext();) {
outputStream.write(iterator.next());
outputStream.write("\n");
}
} finally {
if (bufferedReader != null) {
bufferedReader.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}