安卓文件拷贝

标签 android file-io copy

我发现从 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/

相关文章:

android - 使用 FAB 的 fragment 布局与 CoordinatorLayout 冲突

android - 将不同的 ViewModel 传递给包含布局

python - 如何在保持结构的同时写入预先存在的 xml 文件?

optimization - 如何更快地列出目录?

r - 为什么添加新列后 data.table 的列名会发生变化?

java - Getter 不关联任何字段 - Realm

java - 如何在谷歌地图中绘制gpx文件

java - (Java)从文本文件加载到Arraylist

html - 在不访问任何文件或不了解所用 cms 的情况下复制站点

text - 从 Notepad++ 复制带有颜色的文本