Articles of 文件 io

Android USB主机通讯

我正在开发一个利用Android 3.2中的USB Hostfunction的项目。 一般来说,我在USB /串行通信方面缺乏可观的知识和才能。 我也无法find任何我需要做的好示例代码。 我需要从USB通信设备读取。 例如:当我通过Putty(在我的电脑上)连接时,我输入: >GO 设备开始为我喷出数据。 俯仰/滚动/温度/校验。 例如: $R1.217P-0.986T26.3*60 $R1.217P-0.986T26.3*60 $R1.217P-0.987T26.3*61 $R1.217P-0.986T26.3*60 $R1.217P-0.985T26.3*63 我可以从Android设备发送初始的“GO”命令,此时我收到“GO”的回音。 然后在任何后续读取上没有别的。 我该怎么做:1)发送’go’命令。 2)读入结果数据流。 我正在使用的USB设备具有以下接口(端点)。 设备类别:通讯设备(0x2) 接口: 接口#0类:通信设备(0x2)端点#0方向:入站(0x80)types:中断(0x3)轮询间隔:255最大数据包大小:32属性:000000011 接口#1类:通信设备类(CDC)(0xa)端点#0地址:129编号:1方向:入站(0x80)types:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010 端点#1地址:2编号:2方向:出站(0x0)types:批量(0x2)轮询间隔(0)最大数据包大小:32属性:000000010 我能够处理权限,连接到设备,find正确的接口并分配端点。 我只是想弄清楚使用哪种技术发送初始命令读取随后的数据。 我尝试了bulkTransfer和controlTransfer的不同组合而没有运气。 谢谢。 我正在使用界面#1,如下所示: public AcmDevice(UsbDeviceConnection usbDeviceConnection, UsbInterface usbInterface) { Preconditions.checkState(usbDeviceConnection.claimInterface(usbInterface, true)); this.usbDeviceConnection = usbDeviceConnection; UsbEndpoint epOut = null; UsbEndpoint epIn = null; // look for our […]

Android ContentProvider和Google IO Rest Talk

对所有人来说 如果您在构建Android REST应用程序时观看Google IO会话,则无论您是否需要共享数据,他们都建议使用所有三种设计模式来使用内容提供商。 如果您查看http://developer.android.com/reference/android/content/ContentProvider.html上的Content Provider类文档,他们表示如果您计划与其他应用程序共享数据,则只需使用内容提供程序。 我的应用程序不需要与其他应用程序共享任何数据,因此使用内容提供商过度杀伤? 如果是这样,为什么Google IO RESTvideo意味着它应该在所有场景中使用? – =更新= – 会谈在这里https://dl.google.com/googleio/2010/android-developing-RESTful-android-apps.pdf 。

如何将Writer转换为String

Writer writer = new Writer(); String data = writer.toString();/* the value is not casting and displaying null…*/ 有没有其他方法将编写器转换为字符串?

如何在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(); 但是,如何在闪存驱动器的情况下做到这一点? 提前致谢! 🙂