0

嗨,我有一个大学问题要解决,我很难理解问题的句子。

这是我遇到的问题:

反转文件中的字节顺序,而不是一次将整个文件加载到内存中。您必须在 C#、Java、PHP 和 Python 中解决这个问题。

现在有两件事我在这里不明白。

首先,我不确定字节是指文件的实际字符还是其他字符。问题没有说明它是否是文本文件。

其次,我不确定如何在没有实际加载到内存的情况下打开文件。

这就是我通常会解决这个问题的方式,但我认为如果我这样做,文件会被加载到内存中:

     string fileName = 'file.txt';
     reader = new StreamReader(fileName);

     string line;
     while ((line = reader.ReadLine()) != null)
     {
          Console.WriteLine(line + "\n");
     }

另外,如果我当时读一行,我不确定如何实际反转所有字符。

编辑抱歉以多种语言发布我不想解决问题我只想澄清它所以我可以自己解决它我假设因为我必须用四种不同的语言解决它这个概念将适用于所有 4 和谁回答都没关系

4

1 回答 1

1

打开aFileStream并使用Seek方法转到文件末尾。从那里往回走,一次读取一个字节。这将以相反的顺序读取。所以,直到你到达文件的开头,循环:

read 1 byte
// do whatever you want with that byte...write to another file?
seek back 2 bytes

至于效率,您可以在内存中读取 1024 字节的缓冲区。这样,您就不会Read为文件的每个字节发出操作。填充缓冲区后,将其反转,您就可以开始了。

于 2013-04-06T11:57:13.537 回答