Articles of 文件 io

无法使用libzip和FreeType直接从ZIP加载TTF文件

我正在尝试使用libzip和FreeType直接从ZIP存档加载TTF文件。 特别是,我正在使用FT_Open_Face函数,该函数可以读取自定义读取/关闭函数( ft_zip_read和ft_zip_close )。 但是,虽然文件显然已完全读取,但FT_Open_Face返回FT_Err_Unknown_File_Format 。 直接从磁盘打开相同的文件工作正常。 我真的不知道如何调试这个,有人可以帮忙吗? 我现在唯一能想到的问题就是我的ft_zip_read函数不支持搜索,文档说 : 可以调用此函数以执行“计数”为0的搜索或跳过操作。非零返回值则表示错误。 它确实被调用了0次,但是我看不出用libzip进行搜索的任何方法。 unsigned long ft_zip_read(FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count) { zip_file* file = static_cast(stream->descriptor.pointer); return zip_fread(file, buffer + offset, count); } void ft_zip_close(FT_Stream stream) { zip_file* file = static_cast(stream->descriptor.pointer); zip_fclose(file); } FT_Face load_zipped_face(const std::string& name, unsigned int size, const […]

Android手机作为电脑鼠标

我创建了一个Android应用程序,它将触摸屏传感器数据提供给正在侦听Debian Lenny机器的java客户端。 客户端将此数据映射到屏幕上的位置,就像wacom pad一样。 我想把x_loc和y_loc放到一个文件中,并将文件识别为一个设备。(我总是相信这是它应该如何工作) 我有使用Linux的经验,但之前不必创建设备。 如何告诉Linux该文件是鼠标。 我必须创建一个驱动程序吗?

如何优雅地检查原始资源是否不存在?

我的课程中有一个名为play的方法,我想要播放播放音频文件的方法。 播放哪个文件取决于当前audioIndex值的类。 基本上,有一个这样的开关: int rId; switch (audioIndex){ case 0: rId = R.raw.e0.wav; break; case 1: rId = R.raw.e1.wav; break; default: rId = R.raw.error.wav; break; } 在切换之后,我想validationrId是否有效,然后再将其传递给MediaPlayer.create(this,rId)。 如果id不存在或无法打开,则看起来create不会抛出exception。 所以我必须在通过之前检查一下吗? 如何优雅地处理这个? 直到现在我才假设rId总是正确但我想检查以确保。

如何使用套接字编程在两个Android手机之间创建实时音频流?

我正在尝试开发一个Android应用程序,允许通过使用套接字编程在两个Android移动设备types的音频会议之间的音频流。 我应该用什么来进行音频数据传输? 我正在使用api 10

URLConnection低级字节计数

我试图通过URLConnection获得最低级别的字节计数。 我已经计算了两个流传递的数据,来自Apache Commons IO的CountingInputStream和CountingOutputStream ,但我到达的字节数等于我发送的正文大小+我收到的响应正文大小。 在HttpClient中,我有一个MeasuringClientConnManager ,我认为它是一个更低级别的字节计数。 为了获得最准确的值,我使用TrafficStats将这些库的计数与这些方法进行比较: public static long getCurrentRx(Context context){ int uid = context.getApplicationInfo().uid; return TrafficStats.getUidRxBytes(uid); } public static long getCurrentTx(Context context){ int uid = context.getApplicationInfo().uid; return TrafficStats.getUidTxBytes(uid); } public static long getCurrentNetworkUsage(Context context){ return getCurrentRx(context) + getCurrentTx(context); } public static long getDiffNetworkUsage(Context context, long previousNetworkUsage){ return getCurrentNetworkUsage(context) – previousNetworkUsage; } 使用这些方法,我获得了比使用HttpClient更接近URLConnection的值。 […]

将MS Word文件从Android上传到.Net WCF?

我在从我的Android应用程序上传.doc文件到.Net WCF时遇到问题。 我能够发送文件,但在WCF端不支持。 这是我上传的方法: protected void checkinmethod(String rid) throws Exception { File SDCardRoot = Environment.getExternalStorageDirectory(); //create a new file, specifying the path, and the filename //which we want to save the file as. File file = new File(SDCardRoot, rid+”.doc”); InputStream in = new FileInputStream(file); byte[] bytearray=new byte[(int) file.length()]; int ab=0; do { ab=in.read(bytearray, 0, bytearray.length); […]

从文件中读取long 的最快方法?

我有一个文件,其中包含大约200,000个长值,我想尽快读取到long []。 它适用于Android应用; 函数调用很慢(所以任何涉及用“for”循环一次读取很长的东西都会超级慢)我需要加载才能快。 我可以用什么? 我看到的所有内容似乎都只能快速读取字节。 我之前使用过NIO包中的ByteBuffer和FileChannel ,这似乎是一种从文件加载值数组的快速方法。 但是,我无法弄清楚如何使用它将数据读入long []。 我已经尝试将long []包装为LongBuffer,但是我无法看到任何可以将文件中的数据提供给LongBuffer的方法。 编辑:无论我使用什么方法,我都需要能够在Arrays.binarySearch的long[]数组上使用Arrays.binarySearch 。

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

在经历了mkdirs()的问题并且在互联网周围进行搜索之后,我得到了mkdirs()存在线程安全问题的印象。 当多个线程可能尝试创建类似的文件结构时,有没有办法确保正确创建目录? 谢谢 (在我的情况下,我将在Android上使用此function)

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

我正在为android制作一个字典应用程序。 这个应用程序使用stardict和DICT文件,这些文件通常很大(10MB或更多)并且只包含纯文本。 当用户查找单词时,我的应用程序将随机读取该文件并返回结果。 我读过一些文章,读取文件既昂贵又缓慢。 所以我想知道将所有数据带入数据库是否是更好的解决方案?

安装前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 […]