我发现从 SD 卡上的文本文件一次读取一行相当慢。我想如果文件在内存中可能会更快,所以我想将文件从 SD 卡复制到内存中。
我在网上找到的文件复制示例似乎涉及一次从 InputStream 复制一个字节到 OutputStream 或从 FileReader 复制到 FileWriter。这真的是最快最有效的方法吗?
最佳答案
如果您将文件拉入您的应用程序中,我建议您读取数据,然后将您收集的内存数据填充到某种读取器(也许是 BufferedReader)中,这样您就可以读取从那里开始的行。
这是我通常做的一个例子:
// Assumption: I already have the file object I want to read
// Note: I'm not doing any error handling.
InputStream input = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int bytesRead = 0;
while( (bytesRead = input.read(buffer)) > 0){
baos.write(buffer, 0, bytesRead);
}
StringReader stringReader = new StringReader( new String(baos.toByteArray()) );
BufferedReader bufferedReader = new BufferedReader( stringReader );
for(String line : bufferedReader.readLine()){
// TODO: Handle each line appropriately or something
Log.d("Reading Data Example", line);
}
关于安卓文件拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4615693/