简单的Android对文件进行读写操作
环境:1.系统:window7
2.Android版本:2.2
3.eclipse3.5.2(伽利略)
一、基本的流程图(写入文件)
二、模拟器运行界面
1.主界面
2.保存(不符合条件)
3.正常保存
4.读取文件
5.关于编者
三、代码如下:
1.保存文件的主要代码
保存的主代码
1 bSave.setOnClickListener( new View.OnClickListener() { 2 3 @Override 4 public void onClick(View v) { 5 // TODO Auto-generated method stub 6 resId = R.string.success; 7 file_name = filename.getText().toString(); 8 file_content = filecontent.getText().toString(); 9 /* openFileOutput API 10 * FileOutputStream openFileOutput (String name, int mode) 11 * Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist. 12 */ 13 /* Context四种模式的API 14 * Context.MODE_APPEND -->if the file already exists then write data to the end of the existing file instead of erasing it. 15 * Context.MODE_PRIVATE -->the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID). 16 * Context.MODE_WORLD_READABLE -->allow all other applications to have read access to the created file. 17 * Context.MODE_WORLD_WRITEABLE -->allow all other applications to have write access to the created file. 18 */ 19 flag = InsertInfo(); 20 if (flag){ 21 try { 22 OutputStream outStream = FileStoreActivity. this .openFileOutput(file_name, MODE_PRIVATE); 23 FileService.save(outStream, file_content); 24 25 } catch (Exception e){ 26 Log.e(TAG, e.toString()); 27 resId = R.string.error; 28 } 29 Toast.makeText(FileStoreActivity. this , resId, Toast.LENGTH_LONG).show(); 30 } 31 } 32 33 34 });
2.读取文件的主要代码
读取主代码
1 Button bRead = (Button)findViewById(R.id.read); 2 bRead.setOnClickListener( new View.OnClickListener() { 3 4 @Override 5 public void onClick(View v) { 6 // TODO Auto-generated method stub 7 // 此时隐藏了文件内容框和文件内容的label 8 filecontent.setVisibility(View.GONE); 9 TextView content = (TextView)findViewById(R.id.content); 10 content.setVisibility(View.GONE); 11 InputStream inStream; 12 file_name = filename.getText().toString(); 13 14 /* API 15 * FileInputStream openFileInput (String name) 16 * Open a private file associated with this Context's application package for reading. 17 */ 18 try { 19 inStream = FileStoreActivity. this .openFileInput(file_name); 20 String context = FileService.read(inStream).toString(); 21 Toast.makeText(FileStoreActivity. this , context, Toast.LENGTH_LONG).show(); 22 } catch (Exception e) { 23 Log.e(TAG,e.toString()); 24 resId = R.string.error; 25 } 26 } 27 });
3.关于编者的代码
关于编码代码
Button bAbout = (Button)findViewById(R.id.about); bAbout.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new AlertDialog.Builder(FileStoreActivity. this ).setTitle( " 编者信息 " ) .setMessage( " 编者: naive_monk " + " \n " + " 爱好:篮球、音乐、交友 " + " \n " + " Q Q:1271522052 " + " \n " + " 邮箱:summerdir@gmail.com " + " \n " + " 所在城市:广东惠州 " + " \n " ) .setCancelable( false ).setPositiveButton( " 确定 " , new DialogInterface.OnClickListener() { @Override public void onClick( DialogInterface dialog, int id) { // TODO Auto-generated method stub dialog.dismiss(); } }).setNegativeButton( " 退出 " , new DialogInterface.OnClickListener() { @Override public void onClick( DialogInterface dialog, int id) { // TODO Auto-generated method stub dialog.dismiss(); } }).show(); } });
4.业务代码
代码
/* * 保存文件 */ public static void save(OutputStream outStream, String content) throws Exception { // 写入数据 outStream.write(content.getBytes()); outStream.close(); } /* * 读取文件 */ public static String read(InputStream inStream) throws Exception { // 字节流 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte [] buffer = new byte [ 1024 ]; int len = - 1 ; // 获取字节数据 while ((len = inStream.read(buffer)) != - 1 ) { outStream.write(buffer, 0 , len); } // 得到字节数据 byte [] data = outStream.toByteArray(); outStream.close(); inStream.close(); return new String(data); }
四、小结
这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~