Java文件逆向读写[逐字节]

标签 java stream

我需要从此文本文件source.txt读取内容,并将内容反向写入该文本文件destination.txt。读取和写入必须使用逐字节完成!

我使用 BufferedReaderBufferedWriter 完成了这个练习,它为您提供了一整行字符串,然后非常简单地反转它!

但是我不知道如何使用逐字节逆序写入! 感谢您的帮助!

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

最佳答案

您可以使用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);
            }
...

关于Java文件逆向读写[逐字节],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49150047/

相关文章:

java - web.xml 内容应该按顺序排列吗?

java - 线程执行期间对象状态修改

c# - WebReponse.GetStream 的奇怪行为

c - fread 和 fwrite 的问题

java - 将运行时 exec() OutputStream 打印到控制台

python - 如何在 Python 中将文件流转换为数据 URI?

java - 如果设置了给定的 java 属性,如何使用 Eclipse Core Expression 计算结果为 true?

java - Java ObjectInputStream提供了java.io.EOFException

java - 使用哨兵控制循环不断请求 double 值的程序

.net - 从应用程序关闭在 Web 服务上创建的 MemoryStream