一般要是在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"));
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