pre*_*bgg 2 file-io android 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);
}
Run Code Online (Sandbox Code Playgroud)