java - 在 android 中从 byte[] 写入文件失败

标签 java android file-io

我正在编写一个必须通过蓝牙发送一些文件的应用程序。 客户端收到一个字节数组,然后必须将其构造到文件中。但是只有数组中的几行被复制到文件中! 这是我的线程代码,其中读取来自服务器的每条消息:

编辑:try/catch 代码。

try {   
    FileOutputStream fos = new FileOutputStream("//mnt//sdcard//" + fileName);    
    fos.write(buffer);
    fos.close();
}
catch(FileNotFoundException e) {
    Log.d("FAIL", e.toString());
    }
catch (IOException e) {
    Log.d("FAIL", e.toString());
}

缓冲区是byte[]。我什至检查了 Toast:缓冲区一切正常。它包含文件中的每个符号,但我无法以某种方式全部写入。

最佳答案

您永远不应该像以前那样对文件路径进行硬编码。

在android中,你应该使用Environment.getExternalStorageDirectory

String fname = Environment.getExternalStorageDirectory() + "myfile.jpg";
File file = new File( fname );

如果您没有在文件路径中指定 Environment.getExternalStorageDirectory,它将在您的应用程序安装文件夹中返回。

在你的例子中,这个文件可能写在“com.your.package/test.jpg”

关于java - 在 android 中从 byte[] 写入文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829492/

相关文章:

java - 如何修改 jbpm-console 应用程序以使其从数据库检索用户、角色和组列表?

java - 如何以编程方式在页面上发出鼠标单击

android - 如何在应用程序未运行时显示通知

C++读取文本文件和存储数据

Java 创建一个新文件,或覆盖现有文件

java - 如何使用多线程并行运行两个类?

android - "Google Map"如何通过地址获取经纬度

android - 使用 NSURLSession 将 Android post 请求转换为 iOS swift

python - 如何使用python正确读取和修改文件

java - 替代 Java 6 中的 Files#copy()