android之文件操作——读取assets和raw文件下的内容

1.分别创建assets文件夹和res/raw文件夹:(要注意的raw文件是在res下new,然后创建一个名字为raw的文件夹)

      

2.创建两个txt文件,复制到asset和raw文件夹中:

3.实现的效果:

4.实现代码:

(1)布局文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:orientation="vertical"
 7     tools:context="base.readassetsfile.MainActivity">
 8     <Button
 9         android:textSize="20sp"
10         android:text="@string/aasets_txt"
11         android:id="@+id/readFile"
12         android:layout_width="match_parent"
13         android:layout_height="wrap_content" />
14     <Button
15         android:textSize="20sp"
16         android:text="@string/raw"
17         android:id="@+id/readRawFile"
18         android:layout_width="match_parent"
19         android:layout_height="wrap_content" />
20 </LinearLayout>

(2)具体实现:

 1 package base.readassetsfile;
 2
 3 import android.support.v7.app.AppCompatActivity;
 4 import android.os.Bundle;
 5 import android.util.Log;
 6 import android.view.View;
 7 import android.widget.EditText;
 8
 9 import java.io.BufferedReader;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.io.InputStreamReader;
13 import java.io.OutputStream;
14 import java.io.UnsupportedEncodingException;
15
16 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_main);
21         findViewById(R.id.readFile).setOnClickListener(this);
22         findViewById(R.id.readRawFile).setOnClickListener(this);
23     }
24     @Override
25     public void onClick(View v) {
26         switch (v.getId()){
27             case R.id.readFile:
28                 readAsset();
29                 break;
30             case R.id.readRawFile:
31                 readRaw();
32                 break;
33         }
34     }
35     public void readAsset(){
36         try {
37             //获取文件中的字节
38             InputStream inputStream=getResources().getAssets().open("Test.txt");
39             //将字节转换为字符
40             InputStreamReader isReader=new InputStreamReader(inputStream,"UTF-8");
41             //使用bufferReader去读取内容
42             BufferedReader reader=new BufferedReader(isReader);
43             String out="";
44             while((out=reader.readLine())!=null){
45                 Log.d("读取到的文件信息:",out);
46             }
47         } catch (IOException e) {
48             e.printStackTrace();
49         }
50     }
51     public void readRaw(){
52         try {
53             //获取文件中的内容
54             InputStream inputStream=getResources().openRawResource(R.raw.test);
55             //将文件中的字节转换为字符
56             InputStreamReader isReader=new InputStreamReader(inputStream,"UTF-8");
57             //使用bufferReader去读取字符
58             BufferedReader reader=new BufferedReader(isReader);
59             String out="";
60             try {
61                 while((out=reader.readLine())!=null){
62                     Log.d("从raw文件夹中读取到的数据:",out);
63                 }
64             } catch (IOException e) {
65                 e.printStackTrace();
66             }
67         } catch (UnsupportedEncodingException e) {
68             e.printStackTrace();
69         }
70     }
71
72 }

时间: 2024-07-30 10:12:42

android之文件操作——读取assets和raw文件下的内容的相关文章

android开发步步为营之54:读取assets,raw文件夹下文件

一.读取assets文件下文件products.json public String readAssetFile(Context c, String file) { Elapsed profiler = new Elapsed(); BufferedReader bufReader = null; try { InputStreamReader inputReader = new InputStreamReader(c.getResources().getAssets().open(file))

android txt文件读写(读取资源文件,读取私有和SD文件的方法)

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import org.apache.http.util.EncodingUtils; import android.app.Activity; public class FileAccess { /** * 一.私有文件夹下的文件存取(/data/data/包名/files) * * @param fileNam

Android读取asserts和raw文件夹下的文件

经常需要用到读取"/res/raw"和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的文件操作工具类: /** * raw文件夹下的文件处理工具类 * * */ public class RawFileUtils { private RawFileUtils( ){ } /** * 读取raw文件夹下的文件 * @param resourceId raw文件夹下的文件资源ID * @return 文件内容 * * */ publ

文件操作--读取文件

1.文件的读取操作:从文件中读取数据到计算机内存中 read():返回值为包含整个文件内容的一个字符串 readline():返回值为文件下一行内容的字符串 readlines():返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串 文件的遍:1: f = open('temp.txt', 'r') for line in f.readlines(): # 处理一行数据 pass f.close() 文件的遍历2: f = open('tmp.txt', 'r') for line i

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数

文件操作(续) 获得文件句柄位置,f.tell(),从0开始,按字符数计数 f.read(5),读取5个字符 返回文件句柄到某位置,f.seek(0) 文件在编辑过程中改变编码,f.detech() 获取文件编码,f.encoding() 获取文件在内存中的编号,f.fileno() 获取文件终端类型(tty.打印机等),f.isatty() 获取文件名,f.name() 判断文件句柄是否可移动(tty等不可移动),f.seekable() 判断文件是否可读,f.readable() 判断文件是

c语言文件操作常用函数及读写文件代码举列

文件操作常用函数 fopen() 打开流 fclose() 关闭流 fputc() 写一个字符到流中 fgetc() 从流中读一个字符 fseek() 在流中定位到指定的字符 fputs() 写字符串到流 fgets() 从流中读一行或指定个字符 fprintf() 按格式输出到流 fscanf() 从流中按格式读取 feof() 到达文件尾时返回真值 ferror() 发生错误时返回其值 rewind() 复位文件定位器到文件开始处 remove() 删除文件 fread() 从流中读指定个数

Windows phone开发之文件夹与文件操作系列(一)文件夹与文件操作

Windows phone7中文件的存储模式是独立的,即独立存储空间(IsolatedStorage).对文件夹与文件操作,需要借助IsolatedStorageFile类. IsolatedStorageFile提供了对独立存储的空间获取,文件夹的删除.移动,文件的创建.删除等IO操作. 在Windows phone7中对文件的操作,都需要引入命名空间System.IO.IsolatedStorage和System.IO. 在System.IO.IsolatedStorage 命名空间下有以下

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

C语言中的文件操作(2)---标准I/O文件操作

在上一篇文章中,我们初步了解了freopen()函数的用法.但在一些算法竞赛中不允许使用文件重定向操作,这时我们就只能用标准C头文件stdio.h中的fopen()函数进行对文件的读写了. fopen()函数的不足之处就在于使用的方法复杂,写起来比较麻烦.但是它灵活度比freopen()要高得多,比如支持多文件同时读写等等. 实现方法:在main函数之前定义一个类型为FILE*的指针,并使它指向创建的文件. FILE* fp1 = fopen("D:\\abc.in", "r