当前位置: 首页 > 面试题库 >

FileInputStream到Android应用程序中的字节数组

冀冯浩
2023-03-14
问题内容

我有使用创建的FileInputStream Context.openFileInput()。我现在想将文件转换为字节数组

不幸的是,我无法确定所需的字节数组的大小FileInputStream.read(byte[])。该available()方法不起作用,我无法创建使用特定路径名检查其长度的文件,这可能是因为非root用户无法访问该路径。

我读了一下ByteArrayOutputStream,它似乎可以动态调整字节数组的大小以适合它,但是我无法从中读取内容FileInputStream并写入ByteArrayOutputStream


问题答案:

这应该工作。

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();


 类似资料:
  • 有没有办法找到Java应用程序中分配了多少字节?如果可能,在不更改代码的情况下?谢谢

  • 有人能给我解释一下这个LogCat输出以及如何解决它吗?我用手机(三星Galaxy Nexus)测试我的Android应用程序,就这样;系统强制拘留并将此打印在日志中...

  • 我明白了,我必须提到Proguard属性文件中的外部库。我该怎么提才是问题所在。 请查看我的proguard文件

  • 我正在开发两个应用程序。让第一个应用程序是APP1,第二个应用程序为APP2。现在在APP1中,我不提供任何用户权限,如INTERNET权限,但它将发送任何http url,如http://www.google.com我的第二个APP2将包含INTERNET等用户权限。Http请求将从APP1发送到APP2,APP2将响应该请求,然后将结果发送回APP1。最后APP1包含一个Web视图以显示结果。

  • 我试图打开内置的画廊应用程序按下我的应用程序中的按钮。 我正在试用Android 2.3及以上版本的手机。我拥有的手机/平板电脑是 三星S(Android2.3.5)、LG手机(Android3.3)、Nexus One(Android1.3.6)、Android平板电脑(Android4.0.3)和Galaxy Nexus(Android5.3) 我尝试了以下方法: 上述代码在Android平板

  • 我们有一个应用程序,利用在应用程序计费。我们看到的问题如下: 当使用较高版本代码的构建被上传到Play Developer控制台时,In App Billing将停止在设备上的应用程序(使用较低版本代码)上工作,表示“应用程序未配置为计费”。 这很好,在测试的时候,但问题是--当应用程序在Google Play商店中时,会有什么行为?当您替换应用程序(以执行更新)时,处于野生状态(具有较低版本代码