Android中文件的读写
作者:LEGEND
qq:158067568
关于Android中文件的读写
文件存放位置
在Android中文件的I/O是存放在/data/data/<package
name>/file/filename目录下。
提示:Android是基于linux系统的,在linux的文件系统中不存在类似于Windows的磁盘分区现象,其是以一个正斜杠“/”开头。
Android中得到输入输出流
在Android中,对于流的操作十分简单。在Context类中有如下两个方法可以直接得到文件输入输出流:
public FileInputStream openFileInput (String name)
public FileOutputStream openFileOutput (String name, int mode)
顾名思义,通过如上方法就可以得到文件输入输出流。对于第二个方法中的mode,有如下四种模式:
Use 0 or MODE_PRIVATE( the default
operation) :用0表示默认值,只能够创建文件的应用程序访问该文件,每次文件写入为覆盖方式。
MODE_APPEND to append to an existing file: 每次文件写入为追加方式,类似于StringBuffer中的append()方法。
MODE_WORLD_READABLE :只有读权限。
MODE_WORLD_WRITEABLE :只有写权限。
提示:如果想同时得到读与写的权限,则可以在mode处通过如下方式创建:
MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE
对于SE部分的补充
FileOutputStream:
public void
write(byte[] b) throws IOException 该方法可将指定的字节数组写入文件输出流
FileInputStream:
public int read(byte[] b) throws IOException 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。
对于输出流直接使用write方法即可,可参考如下代码:
/**
* 写入数据
* @param fs
* @param content
*/
public void fileWrite(FileOutputStream fos,String content){
byte[] contentByteArray = content.getBytes();
try {
fos.write(contentByteArray);
} catch (IOException e1) {
e1.printStackTrace();
}
try {//关闭流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
对于输入流,出于性能考虑,可先使用ByteArrayOutputStream,向内存中创建一个字符数组,当将文件读完后,在读入,参考如下代码:
/**
* 读数据
* @param fis
* @return
*/
public String fileRead(FileInputStream fis){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
try {
while((len=(fis.read(buffer))) != -1){
baos.write(buffer,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}
String result = new String(baos.toByteArray());
//System.out.println(result);
try {
baos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
ByteArrayOutputStream: 此类实现了一个输出流,其中的数据被写入一个 byte 数组。
public
void write(byte[] b,int off,int len) 将指定 byte 数组中从偏移量 off
开始的 len
个字节写入此 byte 数组输出流。
可参考代码:FileIO
分享到:
相关推荐
Android对文件的输入输出操作,IO操作
android的IO流读写文件操作示意程序
java 与android 的IO文件流
NULL 博文链接:https://h121baby.iteye.com/blog/1606777
五,Android文件IO详解
Android的文件操作都是通过流的方式进行的,即IO。Android的文件操作跟Java是一样的,文件操作分为输入流(InputStream)和输出流(OutputStream),输入流用于获取文件数据,输出流用于存储文件。 详细介绍请参考...
网上的一个demo,使用plus中的IO方法选择本地文件,里面的样式等需要自己更改 这个最新的android12也可以使用 只能是Android系统使用
NULL 博文链接:https://androidtoast.iteye.com/blog/1172673
彻底明白 Java 语言中的IO系统 彻底明白 Java 语言中的IO系统
打开Android Studio中的File下的Settings 选中Version Control下的Ignored Files 添加对应的需要忽略的文件 Ignore Unversioned Files下有三种忽略文件方式 Ignore specified file 忽略指定文件 Ignore ...
其实在网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,所以这篇文章在此记录一下下载zip文件并直接解压的方法,直接上代码,文末有源码下载。 下载: import java.io.BufferedInputStream; ...
android 下的文件读写操作源码,可供入门学习
关于android文件下载的一个Demo
Android Studio上运行Flutter,报错could not find io.flutter:flutter_embedding_debug的错误,需要替换以上zip文件即可,Android Studio 4.2.0, Flutter 2.2.3, Dart 2.13.4
Android 10系统开始 进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。作为这项工作的一部分,平台引入了进一步的改进,以简化向分区存储的转换,让用户更好地控制自己的文件,保护用户...
则需要在XXX.aidl文件中声明import a.b.c.Model;全路径。 并且创建另一个文件Model.aidl 在Model.aidl文件中声明以下内容 package xxxx包名称; parcelable Model; 如果编译的时候提示AIDL文件引用的包找不到的话 要...
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util....
git.diff 文件,包含功能实现的所有提交。(Android 9.0) 0基础也能实现Android 控GPIO 包含:编写控制GPIO脚本,内置到系统,在rc中创建运行脚本的服务,通过系统属性触发,添加selinux权限。 自行编写Android...
熟悉android UI中的ListView ,对提高android应用开发很有帮助。
Android Studio 在xml文件中设置界面布局1、xml文件中给输入框editText修改下划线颜色2、设置button按钮为圆角及修改按钮颜色3、运用约束布局时预览效果和运行效果不一致 写一写今天困扰我很久的问题:如何给...