Articles of 文件 io

如何在Java中以线程安全的方式使用mkdirs?

在遇到与mkdirs()相关的问题并且在互联网上发现问题后,我得到mkdirs()存在线程安全问题的印象。 有没有一种方法可以确保当多个线程可能正试图创build类似的文件结构时正确创build目录? 谢谢 (在我的情况下,我将在Android上使用这个)

可序列化对象的ArrayList的encryption保存和解密加载

我保存和加载SD卡中包含这两种方法的序列化对象的ArrayList的文件 保存方法 public static void saveUserList(ArrayList<User> userList) { if (storageAvailable()) { try { createFolder(); FileOutputStream userList = new FileOutputStream( baseDir + File.separator + baseAppDir + File.separator + fileName); ObjectOutputStream oos = new ObjectOutputStream( userList); oos.writeObject(userList); oos.close(); } catch (Exception exc) { exc.printStackTrace(); } } } 加载方法 public static ArrayList<User> loadUserList() { if (storageAvailable()) { ArrayList<User> […]

Android:使用NDK从SD卡上的文件IO

我正在试图写入使用NDK的输出文件,它似乎并没有工作。 我写的代码如下所示: JNIEXPORT jdouble JNICALL Java_com_example_sdcardtest2_CppMethods_nativeCalculations (JNIEnv* env, jclass clazz, jdouble dub){ jdouble hub = dub + 10; FILE* file = fopen("/sdcard/textTest.txt","w+"); fputs("HELLO WORLD!\n", file); fclose(file); return hub; } 返回types是双倍的原因是我计划使用该function的另一个目的,但我首先尝试文件io。 在logcat中,我收到以下错误: Fatal signal 11: (SIGSEGV) at 0x00000000c (code = 1) ….. 有趣的是,当我尝试使用java文件io在调用者活动中写入或读取同一文件时,我没有任何问题。 我确信我有清单文件中的写权限。 此外,如果我删除FILE* file …行,并尝试使用函数返回的double值,程序运行良好。 有人可以帮忙吗? 难道这个问题应该包含在Android.mk或Application.mk文件中,例如? 更新我使用的是三星银河注2,如果这有什么区别 UPDATE2 以下是完整的代码: java活动: public class MainActivity […]

Android Studio在编译时不能删除文件

当我编译我的应用程序为了在模拟器上运行它,Android Studio(版本3.0 RC2)抱怨,因为它不能删除我的项目文件夹中的1.jar文件。 这是错误消息: Error:Execution failed for task ':app:transformClassesWithDesugarForDebug'. > com.android.build.api.transform.TransformException: java.io.IOException: Could not delete path 'D:\ProgrammazioneOffline\ProjectFolder\app\build\intermediates\transform s\desugar\debug\1.jar'. 我发现清理这个工程使得它重新编译,但过了一段时间后又再次抱怨。 我的项目不是很小,每次重build都需要很多时间(重build时间大约是4分钟,而工作正常的时候是30秒)。 在问题出现之前,我已经格式化了我的电脑并改变了项目的path。 我是否忘记了在某处引用某个项目? 在知道的问题中我没有发现这个问题。 预先感谢,并为我的糟糕的英语感到抱歉。 编辑:我发现该文件正在被java.exe使用,并通过cmd杀死它使编译运行,但不应该由Android Studio? 编辑2:这是firebase插件,问题已经修复,看到我接受的答案

Android – 字典文件。 哪个更快,数据库或直接读取文件?

我正在做一个android的字典应用程序。 这个应用程序使用stardict和DICT文件,这往往是相当大的(10MB或更多),只包含纯文本。 当用户查找单词时,我的应用程序将随机读取文件并返回结果。 我读过一些文章,阅读文件是昂贵和缓慢的。 所以我想知道把所有的数据带入数据库是一个更好的解决scheme?

Android保存之前旋转图片

我刚完成我的相机活动,这是奇妙的保存数据。 照片后我做了什么: protected void savePictureData() { try { FileOutputStream fs = new FileOutputStream(this.photo); fs.write(this.lastCamData); fs.close(); //okay, wonderful! file is just written to the sdcard //——————— //——————— //TODO in here: dont save just the file but ROTATE the image and then save it! //——————— //——————— Intent data = new Intent(); //just a simple intent returning some […]

在android中访问USB大容量存储设备

所以我有这个小插头插入你的手机,在另一端有一个USB端口,你可以插入一个闪存驱动器,例如,你可以看到这里: 当我插入一个闪存驱动器时,我收到一个通知,说: USB大容量存储连接 当我然后启动一个文件浏览器应用程序,我可以看到,驱动器然后位于: /存储/ UsbDriveA / 这很好,但我想知道如何访问我的代码中的闪存驱动器。 访问SD卡很容易: File sdCard = Environment.getExternalStorageDirectory(); File directory = new File (sdCard.getAbsolutePath() + "/MyFiles") directory.mkdirs(); 但是,如何在闪存驱动器的情况下做到这一点? 提前致谢! 🙂

在Java中写入byte 到File

如何将字节数组转换为Java中的文件? byte[] objFileBytes, File objFile

写一个文件到SD卡

我试图写一个文件从Http post回复到SD卡上的文件。 一切工作正常,直到数据的字节数组被检索。 我已经尝试在清单中设置WRITE_EXTERNAL_STORAGE权限,并尝试了许多我在网上find的教程的不同组合。 所有我能find的是使用openFileOutput("",MODE_WORLD_READABLE)方法,但我的应用程序如何写入文件是通过使用线程。 具体来说,当一个文件被写入时,一个线程从另一个线程被调用,所以即使我尝试了一个活动对象也不起作用。 该应用程序已经走了很长的路,我不能改变如何编写应用程序。 请有人帮我? CODE : File file = new File(bgdmanip.savLocation); FileOutputStream filecon = null; filecon = new FileOutputStream(file); byte[] myByte; myByte = Base64Coder.decode(seReply); bos.write(myByte); filecon.write(myByte); myvals = x * 11024; bgdmanip.savLocation包含整个文件path。 seReply是从HttpPost响应的string答复。 第二组代码循环参考x 。 该文件被创build,但仍然是0字节。

如何将作家转换为string

Writer writer = new Writer(); String data = writer.toString();/* the value is not casting and displaying null…*/ 有没有其他方法可以将作者转换为string?