`
ishelf
  • 浏览: 106366 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

文件读写--(汉语词典开发)

阅读更多

    在android系统中,外部文件有两种存储方式:内置于asset和raw文件夹内。然而系统只提供了InputStream的读接口。java中常用的RandomFileAccess和FileReader等不能不能直接实现InputStream接口。经过查阅网上提供了以下两种折中的方法用来实现以上接口:
方法一:
     InputStream转FileReader(http://stackoverflow.com/questions/2860157/load-files-bigger-than-1m-from-assets-folder
代码如下:
  

File f = File.createTempFile("mytempfile", "dat");
FileOutputStream fos = new FileOutputStream(f);
InputStream is = mc.getAssets().open(path,3);
ObjectInputStream ois=new ObjectInputStream(is);
byte[] data = (byte[]) ois.readObject();
fos.write(data);
fos.flush();
fos.close();

 
InputStream转RandomAccessFile(http://www.coderanch.com/t/277378/Streams/java/InputStream-RandomAccessFile-best-way
代码如下:

RandomAccessFile raf = new RandomAccessFile(File.createTempFile("isc", "tmp"), "rwd");  
   
        byte[] buffer = new byte[2048];  
        int    tmp    = 0;  
   
        while ((tmp = is.read(buffer)) != -1)   
        {  
          raf.write(buffer, 0, tmp);  
        }  
          
        raf.seek(0); 

 
    以上两种方法通过建立tmpFile从而实现基于File的文件读写类,该方法的缺陷也显而易见占用内存,每个文件都要被读写多次导致程序效率低下。虽然在android下文件不能超过1M,但是针对现有手机的硬件,多次存取会导致不论从耗电量还是程序的速度都会有明显的影响。


    This file can not be opened as a file descriptor; it is probably compressed
    见引用http://code.google.com/p/android/issues/detail?id=3122



 

分享到:
评论

相关推荐

    整理新华字典的汉字、成语、歇后语、词的json文件

    《新华字典》是中国最为权威的汉语字典之一,它为学习者提供了丰富的语言资源。在您提供的压缩包中,包含的五个文件分别是`ci....同时,这也为开发汉语学习应用、智能推荐系统或自然语言处理技术提供了基础数据支持。

    词典mysql库

    在开发过程中,`tbl_common_dictionary.sql`文件很可能是用来初始化数据库的SQL脚本,包含了创建表的DDL语句以及初始数据的DML语句。通过执行这个脚本,可以快速地在MySQL环境中建立这个词典表并填充数据。 总结来...

    C语言课程设计电子词典

    - 使用文件操作函数如`fopen`、`fwrite`、`fread`等实现词典的读写。 - 文件格式建议采用文本格式存储,便于数据管理和后期扩展。 - **数据处理**: - 实现线性查找算法,用于查找和修改词汇。 - 注意字符串的...

    java汉英,英汉词典

    《Java汉英、英汉词典》是一款专为Java编程语言设计的专业词汇工具,它集成了汉语与英语在编程领域的专业术语,旨在帮助开发者更好地理解和翻译编程相关的文档、代码及交流内容。这款词典不仅涵盖了Java语言的基础...

    Java做的一个小小的英汉词典

    Java的java.io和java.nio包提供了丰富的API用于读写文件和处理压缩文件,开发者可能使用了第三方库如Apache Commons Compress来处理rar格式。 6. **文档编写**:“英汉词典使用手册.docx”文件说明了软件的使用方法...

    VC++实现电子词典

    这涉及到数据库操作,可能是简单的文本文件读写,或者是更复杂的数据结构如链表、树等,用于存储和管理词汇数据。用户交互设计需要确保这个过程简单直观,避免复杂的操作流程。 此外,"清除按钮"功能设计用于清理...

    纯Python打造的英汉词典

    【标题】"纯Python打造的英汉词典"揭示了一个基于Python编程语言开发的实用工具,主要用于英语学习者和翻译工作者。这个项目的核心是利用Python的高效性和灵活性,构建一个功能齐全、易于使用的英汉词汇查询系统。 ...

    安卓Andriod源码——一个简单的英汉词典,点击按钮切换汉译英,主要是外部数据库的导入解析!.zip

    - 如果应用涉及读写外部存储,可能需要在Android 6.0及以上版本请求运行时权限,这是Android权限管理的一个重要特性。 6. **版本适配** - 考虑到Android系统的碎片化,开发者可能需要确保应用能在不同版本的...

    一个简单的英汉词典,点击按钮切换汉译英,主要是外部数据库的导入解析.7z

    这个压缩包文件“一个简单...5. **文件操作**:了解如何在程序中进行文件读写操作。 这个简单的英汉词典项目为初学者提供了一个很好的学习平台,它综合运用了多种编程和数据处理技能,对于提升实际开发能力大有裨益。

    json格式数据 开发利器 小凯制作

    标题中的“json格式数据 开发利器 小凯制作”暗示了这个压缩包文件包含的是一个使用JSON格式编写的词典资源。JSON格式的数据通常以键值对的形式存在,类似于JavaScript的对象结构,即由大括号{}包围的一系列键值对,...

    iOS源代码-英汉互译

    在英语到汉语的翻译应用中,TouchXML可能被用来解析网络上的XML格式的词典资源,或者用于处理与服务器交互的数据交换格式。 这个项目的文件名“Dictionary-陈奕龙 余海松”表明了开发团队成员的名字,这通常是项目...

    C#英汉字典

    《C#英汉字典》是一款基于C#编程语言开发的应用程序,主要功能是提供英文单词的汉语释义查询服务。这款软件充分利用了C#的强大功能和面向对象的特性,为用户提供了便捷、高效的词汇查询体验。 在C#编程中,实现这样...

    Android应用源码之一个简单的英汉词典,点击按钮切换汉译英,主要是外部数据库的导入解析!.zip

    9. **权限管理**:如果应用需要读写外部数据库,可能需要在AndroidManifest.xml文件中声明相应的权限,例如READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE。 10. **测试与调试**:在开发过程中,开发者会使用...

    汉字转拼音软件

    在KTestpinyin这个文件中,很可能是汉字转拼音软件的一个测试版本或开发资源。可能包含了软件的源代码、测试数据、用户手册等相关资料,供开发者或研究者进行研究和改进。 总之,汉字转拼音软件是中文信息化处理中...

Global site tag (gtag.js) - Google Analytics