android读写文件

一般要是在PC上建立一个虚拟机,然后用DDMS的file explorer 查看虚拟手机上的文件

但是这个方法运行速度之慢实在是不能忍,一般都是直接用手机调试,在读写文件的时候就有问题了,首先不能读写sd card上的文件,因为手机在连接PC时,是不能访问sd card的。可以先断开手机与PC的连接,再运行程序。可以读取手机内部硬盘上的文件,但是写入手机内部硬盘的文件用DDMS是看不到的,虽然写成功了。


文件读写有三种方式:

1.  资源文件只能读不能写

在assets和res/raw内的文件是资源文件,只能读。


raw内一个文件名"out"

InputStream in = getResources().openRawResource(R.raw.out);
BufferedReader reader = new BufferedReader(new InputStreamReader(in, "utf-8"));


在assets内一个文件名“text.txt”

InputStream in = getResources().getAssets().open("text.txt");



2. 读写sd card 文件

File path = new File("/sdcard/");
File file = new File("/sdcard/wordsize.txt");
		
if (!path.exists()) {
	path.mkdir();
}
if (!file.exists()) {
	file.createNewFile();
}
		
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/sdcard/wordsize.txt"), "utf-8"));

在sd card的根目录下生成wordsize文件。注意以上两步检测并创建的操作必须要有。


BufferedReader fin = new BufferedReader(new InputStreamReader(new FileInputStream("/sdcard/wordsize.txt"), "utf-8"));


注意要在Manifest中添加许可

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>



3. 读写内部文件

这里是指读写的/data/data/应用程序名下的文件

FileOutputStream fout = m_context.openFileOutput("wordSize.txt", m_context.MODE_PRIVATE);//因为这里不是在acivity类的操作,所以要用Context对象引用

如果在activity类内部操作,不需要m_context对象。


FileInputStream fis = m_context.openFileInput("wordSize.txt");


读写内部文件,要注意必须用android提供的openFileOutput和openFileInput






你可能感兴趣的:(android读写文件)