Java文件反向读取和写入[逐字节]

时间:2018-03-07 10:48:46

标签: java stream

我需要阅读此文本文件source.txt并在此文本文件destination.txt中反向编写内容。读写必须使用逐字节完成!

我使用BufferedReader&做了这个练习。 BufferedWriter它给你一个整行作为一个字符串,然后它很容易扭转它!

但我不知道如何使用逐字节以相反的顺序写入! 谢谢你的帮助!

source.txt有此文:“操作系统”

destination.txt上的结果应该与source.txt相反:“smetsyS gnitarepO”

以下是代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException{

        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("source.txt");
            out = new FileOutputStream("destination.txt");


            int c;

            while ((c = in.read()) != -1) {

                out.write(c);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用RandomAccesFile进行阅读:

...
            in = new RandomAccessFile("source.txt", "r");
            out = new FileOutputStream("destination.txt");
            for(long p = in.length() - 1; p >= 0; p--) {
                in.seek(p);
                int b = in.read();
                out.write(b);
            }
...