Android-Java 检测 Output-Stream 何时完成写入字节
Android-Java detect when the Output-Stream has finished to write the bytes
我的代码工作正常,我只是想在写入字节完成时显示一些祝酒词。我知道我可以在 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();
他们无法追踪到 OutputStream 已经完成写入字节,您可以在 close()
.
之后添加 toast 或其他内容
我的代码工作正常,我只是想在写入字节完成时显示一些祝酒词。我知道我可以在 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();
他们无法追踪到 OutputStream 已经完成写入字节,您可以在 close()
.