Android如何读写assets、raw、sdard和工程文件
来源:互联网 发布:淘宝网店虚拟充值网店 编辑:程序博客网 时间:2024/06/04 18:40
Android开发离不开对文件的操作,下面来看下Android是怎么操作其内置目录文件及外部sdcard数据的。
资源文件:
/assets目录下test.txt
/res/raw目录下rawfile.txt
一、读取assets目录下的文件
InputStream is = getResources().getAssets().open("test.txt"); Reader in = new InputStreamReader(is); BufferedReader bufferedReader = new BufferedReader(in); String line = null; while (null != (line = bufferedReader.readLine()) ){ System.out.println("assets file==========" + line); } bufferedReader.close(); in.close(); is.close();
由于assets下的文件不会再R.java中生成相应的ID,因此Android提供了AssetManager的方法访问assets下的资源。
二、读取raw目录下的文件(raw位于res目录下,这个文件需要手工创建)
is = getResources().openRawResource(R.raw.rawfile); in = new InputStreamReader(is); bufferedReader = new BufferedReader(in); line = null; while (null != (line = bufferedReader.readLine()) ){ System.out.println("rawfile==========" + line); } bufferedReader.close(); in.close(); is.close();
三、读写工程内部文件
FileOutputStream fileOutputStream = openFileOutput("projectfile.txt", Context.MODE_PRIVATE); OutputStreamWriter osw = new OutputStreamWriter(fileOutputStream); BufferedWriter bw = new BufferedWriter(osw); bw.write("ooooooooooooooooooo"); bw.close(); osw.close(); fileOutputStream.close(); FileInputStream fileInputStream = openFileInput("projectfile.txt"); InputStreamReader isr = new InputStreamReader(fileInputStream); char[] input = new char[fileInputStream.available()]; isr.read(input); isr.close(); fileInputStream.close(); String str = new String(input); System.out.println("project file=============" + str);
四、读写sdcard文件
1、AndroidManifest.xml中添加权限控制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
2、java操作代码:
File file = Environment.getExternalStorageDirectory();//获取sdcard路径if(file.exists()){//判断是否存在sdcard System.out.println("sdcard file path========" + file.getAbsolutePath()); File myfile = new File(file, "myfile_sdcard.txt"); myfile.createNewFile(); FileOutputStream fos = new FileOutputStream(myfile); fos.write("AAAAAAAAAAa".getBytes()); fos.flush(); fos.close();}//读取sdcard文件File file1 = new File(file, "myfile_sdcard.txt");InputStream inputStream = new FileInputStream(file1);Reader reader = new InputStreamReader(inputStream);BufferedReader bufferedReader1 = new BufferedReader(reader);String iline = null;while(null != (iline = bufferedReader1.readLine())){ System.out.println("from sdcard myfile_sdcard.txt============" + iline);}bufferedReader1.close();reader.close();inputStream.close();
上述四种操作Android文件的方式,各个处理方式都有所不同。
1、读取assets目录下的资源文件时需要通过getResources().getAssets()方法获取AssetManager的open方法来进行处理;
2、而读取raw目录下的资源文件则通过getResources().openRawResource(R.raw.资源名称)的方式来获取;
3、读写工程其他目录的文件则通过openFileOutput和openFileInput来进行处理;
4、sdcard文件的操作需要额外在AndroidManifest.xml中进行权限的声明,并通过Environment.getExternalStorageDirectory()获取sdcard的路径,剩下的就是Java对文件的操作了。
阅读全文
0 0
- Android如何读写assets、raw、sdard和工程文件
- Android 获取assets文件和raw文件
- Android资源文件目录assets和raw
- android资源文件(assets and raw) 的读写
- Android工程的assets和res/raw目录解析
- 【assets&raw】Android中资源文件assets和res下面raw文件的使用不同点
- assets和raw文件路径
- 获取Raw和assets文件
- android 中资源文件assets文件和raw文件的区别
- Android assets和raw文件夹
- android 开发 raw和assets
- Android文件读写操作(assets 文件、 raw文件、内部存储文件、外部存储文件)
- android工程下assets与raw文件夹
- android工程下assets与raw文件夹
- android工程下assets与raw文件夹
- android工程下assets与raw文件夹
- android工程下assets与raw文件夹
- Android从assets和raw中读取txt文件
- Redis常见API
- java——乐观锁和悲观锁
- Java客户端连接elasticsearch5.5.3实现数据搜索(基于xpack安全管理)
- arduino: read unique ID
- Android聊天界面解决输入框覆盖聊天内容
- Android如何读写assets、raw、sdard和工程文件
- 微信小程序常用地址
- 如何解决大规模机器学习的三大痛点?
- sourceTree的使用
- IOS开发之Objective-c与Swift混编简单示例-数字时钟
- java之序列化与反序列化
- PLSQL打开Oracle数据库表错误或字符错误或只安装PLSQL客户端打开Oracle解决办法
- SpringBoot集成Redis实现缓存处理(Spring AOP技术)
- 数据结构第七周项目3--负数把正数赶出队列