android读取txt文件内容
㈠ Android开发之如何读写文件
【转】
首先介绍如何存储数据,显然,要将数据从应用中输出到文件中,必须得到一个输出流outPutStream,然后往输出流中写入数据,在这里Android自带了一个得到应用输出流的方法
FileOutputStream fos =context.openFileOutput(“yuchao.txt”,Context.MODE_PRIVATE); (1)
其中第一个属性为文件名,第二个属性为读写模式(有关读写模式的说明下面将详细阐述),
然后在文件输出流fos中便可以写入数据
Fos.write(“Hi,”I’m Chao Yu!”.getBytes());
用完文件输出流之后记得关闭
fos.close();
这样,在/data/data/packageName/file目录下就生成了一个文件名为yuchao.txt的文件,文件中的内容为” Hi,I’m Chao Yu!”
有关(1)中读写模式其实就是制定创建文件的权限以及在读写的时候的方式,Android中提供了以下几种读写模式
Context.MODE_PRIVATE = 0
该模式下创建的文件其他应用无权访问,并且本应用将覆盖原有的内容
Context.MODE_APPEND = 32768
该模式下创建的文件其他应用无权访问,并且本应用将在原有的内容后面追加内容
Context.MODE_WORLD_READABLE = 1
该模式下创建的文件其他应用有读的权限
Context.MODE_WORLD_WRITEABLE = 2
该模式下创建的文件其他应用有写的权限
如果需要将文件设置为外部应用可以读写,可将读写模式设置为Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE
一般情况下,各个应用维护的数据都在一个特定的文件夹中,即上面所提到的/data/data/packageName/file(存在于手机存储中),但手机内存毕竟有限,所以有些情况下,我们需要往SD卡中写入数据文件,这其实和普通的java web 应用步骤一样,都是先创建特针对特定目录特定文件的输出流,然后往输出流中写数据,这里要注意一个方法,就是获取SD卡根目录的方法,随着Android系统不断升级,SD卡的根目录随时都有可能改变,Android中得到SD卡根目录的方法是
File sdCardDir = Environment.getExternalStorageDirectory();
然后就可以进行下面的步骤
File saveFile = new File(sdCardDir, “yuchao.txt”);
FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("Hi,I’m ChaoYu".getBytes());
outStream.close();
值得注意的是,在往SD卡中写数据的时候,健壮的代码必须考虑SD卡不存在或者写保护的情况,故在写入之前,先做判断
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
……
}
接着,我们来学习下我们的应用程序如何读取文件中的数据,其实就是写的逆向过程
若要读取应用程序默认维护的文件(即/data/data/packageName/file目录下的文件),首先得到文件输入流
FileInputStream istream = this.context.openFileInput(“yuchao.txt”);
然后在内存中开辟一段缓冲区
byte[] buffer = new byte[1024];
然后创建一个字节数组输出流
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
读出来的数据首先放入缓冲区,满了之后再写到字符输出流中
while((len=istream.read(buffer))!=-1){
ostream.write(buffer, 0, len);
}
最后关闭输入流和输出流
istream.close();
ostream.close();
将得到的内容以字符串的形式返回便得到了文件中的内容了,这里的流操作较多,故以一张图片来说明,见图1
return new String(ostream.toByteArray());
从SD卡中读取数据与上述两个步骤类似,故不再赘述,留给读者自己思考
如在开发过程中进行SD卡地读写,切忌忘了加入权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
至此,Android系统中有关文件数据的读写介绍完毕。
㈡ android 如何读写文件
读文件:
1、通过File获取文件
2、打开输入流,读取文件
写文件:
1、创建文件
2、打开输出流,写入文件内容
示例:
读文件:
Stringcontent="";//文件内容字符串
//通过路径/sdcard/foo.txt打开文件
Filefile=newFile("/sdcard/foo.txt");
try{
InputStreaminstream=newFileInputStream(file);//读取输入流
InputStreamReaderinputreader=newInputStreamReader(instream);//设置流读取方式
BufferedReaderbuffreader=newBufferedReader(inputreader);
while((line=buffreader.readLine())!=null){
content+=line+" ";//读取的文件内容
}
}catch(Exceptionex){
}
写文件:
Filefile=newFile("/sdcard/foo.txt");//
if(!file.exists())
file.createNewFile();//如果文件不存在,创建foo.txt
try{
OutputStreamoutstream=newFileOutputStream(file);//设置输出流
OutputStreamWriterout=newOutputStreamWriter(outstream);//设置内容输出方式
out.write("文字内容");//输出内容到文件中
out.close();
}catch(java.io.IOExceptione){
e.printStackTrace();
}
㈢ android如何读取txt文本里面的数据
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String fileName = "/sdcard/y.txt";//文件路径
// 也可以用String fileName = "mnt/sdcard/Y.txt";
String res = "";
try {
FileInputStream fin = new FileInputStream(fileName);
// FileInputStream fin = openFileInput(fileName);
// 用这个就不行了,必须用FileInputStream
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");////依Y.txt的编码类型选择合适的编码,如果不调整会乱码
fin.close();//关闭资源
System.out.println("res--->"+res);
int a=Integer.parseInt(res.substring(3, 5));
int b=Integer.parseInt(res.substring(8, 10));
System.out.println(a+"res--->"+b);//获取的a.b
} catch (Exception e) {
e.printStackTrace();
}
}
㈣ android编程:怎样读取txt文件
android 能读取的文件都是系统里面的(这是系统不是开发坏境系统,而是你程序运行的环境系统,也就是avd或者真实的手机设备的sd卡),这就需要你把文件导入你的环境中,mnt目录底下,然后按到读取sd卡的路径读取即可。
㈤ Android中 java io流如何获取本地txt文件,并能对其进行阅读
可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到读取的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
㈥ 什么手机软件可以阅读.TXT的文件
安卓手机阅读器:iReader
iReader是安卓平台一款非常出名的手机阅读软件。也是凌少个人最喜欢的一款安卓手机阅读器。iReader支持TXT, UMD, CHM, HTML, PDB格式的电子书阅读,支持手势翻页,有多种翻页特效,并且支持书签、全屏、自定义看书文字等功能。以及白天与夜间看书模式、自定定缩放、自定义看书时的屏幕亮度,还能备份看书历史、自定义编码等,功能非常之强大。还有一点,iReader的UI设计非常棒,界面非常好看。
安卓手机阅读器:QQ阅读
QQ阅读是一款由盛大公司出品的安卓手机阅读软件。它秉承着盛大产品一款的风格:简单好用,带给用户最舒适、方便的体验。使用和阅读起书籍来非常给力。QQ阅读具备以下亮点功能:个性皮肤随心换;快速打开本地书;自动记录每本书最后阅读位置; 实用好用的书签功能;阅读页面支持全屏模式、夜间模式、旋转屏幕;阅读页面可更改背景颜色、文字颜色、字体大小;阅读页面支持自动浏览、背景灯常亮(常亮功能部分机型暂无法使用); 阅读页面支持文字跳转、章节跳转等。带您畅想最舒适的阅读体验。
安卓手机阅读器:百阅看书
百阅是Andriod平台上又一款非常出名的手机阅读软件。支持在手机上离线或在线阅读BRM、UMD和TXT格式的手机电子书、杂志、漫画;即时写作书评、发布书摘、同步微博,带来以阅读为核心的社交互动新体验。百阅的界面也非常的清爽大气,阅读功能多而实用。百阅看书的翻页是采用向上推动的方式,符合大家看书的习惯。
安卓手机阅读器:盛大云中书城
云中书城for Android 是盛大文学推出的一款精品手机阅读应用,用户可免费下载和使用。云中书城不仅包含云中书城、起点中文、红袖添香、晋江文学、榕树下、潇湘书院等阅读网站的所有内容,同时您也能找到中外经典名着、多种工具书和少儿读物等等,适合不同人群口。整个手机阅读器的UI设计也非常的干净清爽,阅读起来的感觉很好。
安卓手机阅读器:起点读书
起点读书android版又名起点看书,是起点中文网推出的一款阅读软件。它支持本地阅读并提供起点在线书库,具备多种格式的解析阅读功能,同时提供了赏心悦目的UI及轻松舒适的图书阅读体验。同时兼容多个Android平台版本,支持Android平板(for pad)。从视觉到使用的设定和效果都非常符合中国目前的使用习惯。作为盛大旗下,中国最知名的读书网站——起点所推出的这款起点读书软件,大家还是可以期待的。
安卓手机阅读器:静读天下
静读天下是一款 Android 平台支持中文的手机阅读软件,支持翻页效果,外挂字体,在线书库,和众多阅读格式,也支持在线下载,自带中文。静读天下主要功能:支持多个在线书库,内容丰富全面;数十种最新报纸、 杂志、各大媒体精粹,精选文摘;数万本各类书籍, 武侠言情,悬疑推理, 魔幻奇幻, 历史小说,现代小说等等应有尽有;深度优化 txt 格式长篇小说阅读体验; 并支持 html, epub, umd, zip 格式文件的阅读等,非常给力。
安卓手机阅读器:91熊猫看书
91熊猫看书是安卓平台上一款非常成熟,且拥有非常多忠实用户的一款安卓手机阅读软件。我们通过91熊猫看书时时的查看那些最新、最火爆的小说、漫画、新闻、杂志等。熊猫看书支持TXT、ZIP、HTML、EPUB、UMD、NDB、NDZ等格式,自适应中文编码,自动排版。除此之外,91熊猫看书的界面设计也非常大气靓丽,大大增加了我们阅读时候的视觉享受。
㈦ android 开发怎么读取并显示txt文件
StringBuffer sb = new StringBuffer(); File file = new File("myfile.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String line = ""; while((line = br.readLine())!=null){ sb.append(line); } br.close(); (TextView)findViewById(R.id.text1).setText(sb.toString()); 第二行,创建文件对象,指向需要读取的文件 第三行,创建文件Reader对象,读取指定的文件 第四五行,创建一个line接受读取的文件内容,因为是文本文件,所以一行一行读 第八行,关闭文件读取对象 第九行,将文本文件内容写入到TextVIew中
㈧ android 读取txt文件获取每行内容
方法:
通过输入流的readline方法进行按行读取内容。
举例:
(StringfilePath){//输入文件路径
FileInputStreamfis=openFileInput(filePath);//打开文件输入流
StringBuffersBuffer=newStringBuffer();
DataInputStreamdataIO=newDataInputStream(fis);//读取文件数据流
StringstrLine=null;
while((strLine=dataIO.readLine())!=null){//通过readline按行读取
sBuffer.append(strLine+" ");//strLine就是一行的内容
}
dataIO.close();
fis.close();
}