c# – 以相反的顺序一次读取一个字节的文件

嗨,我试图以相反的顺序一次读取一个字节的文件.到目前为止,我只能设法从开始到结束读取文件并将其写入另一个文件.

我需要能够从头到尾读取文件并将其打印到另一个文件.

这是我到目前为止:

        string fileName = Console.ReadLine();
        using (FileStream file = new FileStream(fileName ,FileMode.Open , FileAccess.Read))
        {

            //file.Seek(endOfFile, SeekOrigin.End);

            int bytes;
            using (FileStream newFile = new FileStream("newsFile.txt" , FileMode.Create , FileAccess.Write))
            {
                while ((bytes = file.ReadByte()) >= 0)
                {
                    Console.WriteLine(bytes.ToString());
                    newFile.WriteByte((byte)bytes);
                }
            }
        }

我知道我必须在fileStream上使用Seek方法,这会让我到文件的末尾.我已经在代码的注释中执行了该操作,但我不知道如何在此时读取文件环.

我怎么能得到这个?

最佳答案

    string fileName = Console.ReadLine();
    using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read))
    {
        byte[] output = new byte[file.Length]; // reversed file 

        // read the file backwards using SeekOrigin.Current
        //
        long offset;
        file.Seek(0, SeekOrigin.End);        
        for (offset = 0; offset < fs.Length; offset++)
        {
           file.Seek(-1, SeekOrigin.Current);
           output[offset] = (byte)file.ReadByte();
           file.Seek(-1, SeekOrigin.Current);
        }

        // write entire reversed file array to new file
        //
        File.WriteAllBytes("newsFile.txt", output);
    }
点赞