Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何反向读取文件?_Java_File Io_Reverse - Fatal编程技术网

Java 如何反向读取文件?

Java 如何反向读取文件?,java,file-io,reverse,Java,File Io,Reverse,如何反转.txt文件的输出? 例如: 输入文件内容: 这是文件的开头 第二行 这是第三行 第四行 文件的结尾 应读入并打印以下文件: 文件的结尾 第四行 这是第三行 第二行 这是文件的开头 这是我目前拥有的代码: import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileCopier { public static void copyChara

如何反转.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();
        }
    }
}
你应该能够

  • 逐行阅读你的输入
  • 将每一行读入一个集合
  • 撤销收藏
  • 在这里,我使用一个Deque并获取其下降迭代器:

     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();
                    }
                }
             }
    
    public static void copyCharacters()引发IOException{
    FileWriter outputStream=null;
    BufferedReader BufferedReader=null;
    Deque fileContents=new ArrayDeque();
    试一试{
    outputStream=新文件编写器(“motown_output.txt”);
    bufferedReader=新的bufferedReader(新的文件阅读器(“motown.txt”);
    弦线;
    而((line=bufferedReader.readLine())!=null){
    fileContents.add(行);
    }
    for(Iterator Iterator=fileContents.degeneratingiterator();Iterator.hasNext();){
    write(iterator.next());
    outputStream.write(“\n”);
    }
    }最后{
    if(bufferedReader!=null){
    bufferedReader.close();
    }
    if(outputStream!=null){
    outputStream.close();
    }
    }
    }
    
    您输入了什么内容(即文件中有什么内容),您得到了什么输出?一个样品就行了。还有,你希望的产量的确切形状是什么?Motown.txt:底特律市位于密歇根州东部,被称为汽车城,过去是最大的汽车生产商之一,现在是什么这是我输入的.txt文件。请务必在您的问题中添加此文件。评论只是为了评论。你在问题中添加的细节越多,人们就越有可能一眼就能帮助你。