Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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_Android_Encryption_File Io - Fatal编程技术网

Java 将整个文件复制到内存,而不是进行多个磁盘访问

Java 将整个文件复制到内存,而不是进行多个磁盘访问,java,android,encryption,file-io,Java,Android,Encryption,File Io,我正在编写一个java程序,在这里我对文件进行加密和解密。我把文件基本上看作字节数组——取N个字节,加密并写入新文件,重复。同样,在解密时 为此,我当前正在将整个文件复制到字节数组中: byte[]fileAsBytes=Files.readAllBytes(path.get(pathToFile)) 但是,对于较大的文件,我会耗尽堆空间。(我知道我可以增加JVM的可用内存,但这只是回避了这个问题。此外,我还必须在内存更为有限的Android手机上运行此功能) 所以,我考虑一次只从磁盘读取N个字

我正在编写一个java程序,在这里我对文件进行加密和解密。我把文件基本上看作字节数组——取N个字节,加密并写入新文件,重复。同样,在解密时

为此,我当前正在将整个文件复制到字节数组中:

byte[]fileAsBytes=Files.readAllBytes(path.get(pathToFile))

但是,对于较大的文件,我会耗尽堆空间。(我知道我可以增加JVM的可用内存,但这只是回避了这个问题。此外,我还必须在内存更为有限的Android手机上运行此功能)

所以,我考虑一次只从磁盘读取N个字节,而不是复制所有字节然后从内存中读取它们


我的问题是——什么是最好的方法?我不需要随机访问,因为我将按顺序读取文件。此外,我看到的经济放缓程度有多大?因为根据我的研究,硬盘访问比内存访问慢得多

你别无选择,所以“减速”不是一个考虑因素。你必须一口一口地做。一次说64k。你甚至会发现它更快。

你没有任何选择,所以“减速”不是一个考虑因素。你必须一口一口地做。一次说64k。你甚至会发现它更快。

你没有任何选择,所以“减速”不是一个考虑因素。你必须一口一口地做。一次说64k。你甚至会发现它更快。

你没有任何选择,所以“减速”不是一个考虑因素。你必须一口一口地做。一次说64k。您甚至会发现它更快。

最简单的方法是使用和类。这些类为您处理缓冲或“分段”加密方面。它们并不一定完美,这取决于你想做什么。如果缺少缓冲区,则可以自己管理缓冲区。类中当然有很多方法可以方便地进行加密/解密。

最简单的方法是使用和类。这些类为您处理缓冲或“分段”加密方面。它们并不一定完美,这取决于你想做什么。如果缺少缓冲区,则可以自己管理缓冲区。类中当然有很多方法可以方便地进行加密/解密。

最简单的方法是使用和类。这些类为您处理缓冲或“分段”加密方面。它们并不一定完美,这取决于你想做什么。如果缺少缓冲区,则可以自己管理缓冲区。类中当然有很多方法可以方便地进行加密/解密。

最简单的方法是使用和类。这些类为您处理缓冲或“分段”加密方面。它们并不一定完美,这取决于你想做什么。如果缺少缓冲区,则可以自己管理缓冲区。这个类中当然有很多方法可以方便地进行加密/解密。

我同意,你应该在块中读/写文件。类似的事情是在来自ApacheCommonsIO和其他人的UTIL中完成的,例如,请看这里:我同意,您应该以块的形式读/写文件。类似的事情是在来自ApacheCommonsIO和其他人的UTIL中完成的,例如,请看这里:我同意,您应该以块的形式读/写文件。类似的事情是在来自ApacheCommonsIO和其他人的UTIL中完成的,例如,请看这里:我同意,您应该以块的形式读/写文件。类似的操作是在Apache Commons IO和其他应用程序的UTIL中完成的,例如,请参见此处: