我有一个使用创建的FileInputStream Context.openFileInput().我现在想将文件转换为字节数组.
不幸的是,我无法确定所需的字节数组的大小FileInputStream.read(byte[]).该available()方法不起作用,我无法使用特定路径名创建文件以检查其长度,可能是因为非root用户无法访问该路径.
我读到了ByteArrayOutputStream,似乎动态调整字节数组大小以适应,但我无法从如何读取FileInputStream到写入ByteArrayOutputStream.
Rob*_*ond 43
这应该工作.
InputStream is = Context.openFileInput(someFileName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
while ((int bytesRead = is.read(b)) != -1) {
bos.write(b, 0, bytesRead);
}
byte[] bytes = bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)
这是最简单的方法
FileInputStream fis = openFileInput(fileName);
byte[] buffer = new byte[(int) fis.getChannel().size()];
fis.read(buffer);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27851 次 |
| 最近记录: |