【发布时间】:2021-01-05 17:15:33
【问题描述】:
我的代码工作正常,我只想在写入字节完成后显示一些吐司。我知道当我在 while 循环in.read(buf) == 0 之后完成读取文件时可以添加 toast,因此 while 循环完成。我可以在一段时间后或在关闭您的信息流之后显示吐司。当我在 while 循环结束时添加 toast 时,文件显示的时间与显示的 toast 时间不同。它会在几分钟后显示出来。我怎么知道写入字节已完成或close() 告诉它已完成?
File newfile;
FileInputStream in = new FileInputStream(new File(path));
String root = Environment.getExternalStorageDirectory().getAbsolutePath();
File dir = new File(root + "/" + "Pictures");
if (!dir.exists()) {
dir.mkdirs();
}
newfile = new File(dir, "status_" + System.currentTimeMillis() + ".mp4");
if (newfile.exists()) newfile.delete();
OutputStream out = new FileOutputStream(newfile);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
【问题讨论】:
-
在 close() 之后放一个 Toast。有什么问题?
-
@blackapps 我不喜欢,所以这是一个好方法。
-
@blackapps 你是否对这个问题投了反对票,如果你有任何不清楚的地方,你可以问。
-
在while循环之后是一个好地方
-
@ChristianB 我明白了你的意思,但文件显示的时间与显示吐司的时间不同。几分钟后它就显露出来了。
标签: java android file file-handling