1. 写文件
FileOutputStream out = openFileOutput("info1.txt", MODE_PRIVATE); String content = contentEt.getText().toString(); byte[] bytes = content.getBytes(); out.write(bytes); out.close();
首先声明一个文件输出流,使用系统提供的openFileOutput来获取该输出流,获取输出流时需指明输出流对应的文件名称,以及该文件的使用模式.使用模式分为MODE_APPEND即向文件尾写入数据、MODE_PRIVATE即仅打开文件可写入数据、MODE_WORLD_READABLE所有程序均可读该文件数据、MODE_WORLD_WRITABLE即所有程序均可写入数据。
2. 读文件
FileInputStream in = openFileInput("info1.txt"); byte[] buffer = new byte[1024]; in.read(buffer); String str = EncodingUtils.getString(buffer, "UTF-8"); this.contentEt.setText(str.toString()); in.close();
另: 静态文件或者成嵌入式文件,该文件为程序的一部分,在编写时放入程序的资源目录中,程序编译时会将改文件,作为程序的一部分一起编译,该文件一般存放在res/raw文件夹下,文件的名称可以通过R.raw.fileName来访问。该类型文件的读取方式如下:
InputStream in = getResources().openRawResource(R.raw.test);
读取SD上的文件
SDCard文件是指存放在SD卡上的文件,进行SD卡操作前,请确保已安装SD卡且保证已配置允许对SD卡进行操作.对SD开的权限配置在文件AndroidManifest.xml中,需写入一下代码:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> // 创建删除文件权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> // 写入权限
在程序中操作SD卡前,也需判断是否已安装SD卡,判断的方法如下:
if(Environment.getExternalStorageDirectory().equals(Environment.MEDIA_MOUNTED)){……}
向SD中写入文件数据的代码如下:
File sdcDir = Environment.getExternalStorageDirectory(); File file = new File(sdcDir,"info.txt"); try { FileOutputStream out = new FileOutputStream(file); String content = contentEt.getText().toString(); out.write(content.getBytes()); out.close(); } catch (FileNotFoundException e) { …… }
读取的方法与上类似,代码如下:
File sdcDir = Environment.getExternalStorageDirectory(); File file = new File(sdcDir,"info.txt"); FileInputStream in; try { in = new FileInputStream(file); byte[] buffer = new byte[1024]; in.read(buffer); String str = EncodingUtils.getString(buffer, "UTF-8"); this.contentEt.setText(str.toString()); in.close(); } catch (FileNotFoundException e) { …… }