【发布时间】:2015-07-29 15:16:53
【问题描述】:
我正在构建一个应用程序,我想在其中将字节数组从一个活动发送到另一个活动。为此,我以字节形式“data1.txt”将数据保存在文件中。在检索时,应用程序会变慢并停止工作。 这是代码
public void read(String file) {
String ret = "";
try {
InputStream inputStream = openFileInput(file);
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ( (receiveString = bufferedReader.readLine()) != null ) {
ret=ret.concat(receiveString);
}
theByteArray = ret.getBytes();
inputStream.close();
}
} catch (FileNotFoundException e) {
Toast.makeText(getBaseContext(), "File not found: " + e.toString(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(getBaseContext(), "Can not read file: " + e.toString(), Toast.LENGTH_LONG).show();
}
}
【问题讨论】:
-
是你写入这个文件的文本数据(你是用
Writer写的)还是二进制数据(用OutputStream写的)? -
当它停止工作时,你必须有一个堆栈跟踪。你能把它复制到这里吗?
-
如果是文本数据,将
ret改为StringBuilder和append每一行。 -
public void save(String file, byte[] data){ try { FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE); fOut.write(数据); Toast.makeText(getBaseContext(),"写完", Toast.LENGTH_SHORT).show(); fOut.close(); }
-
我已经使用 fileOutputStrem 来保存数据