当前位置:   article > 正文

Android对文件的操作(简单的文件读取与写入)

android 文件写入模拟数据库

简单的Android对文件进行读写操作

  环境:1.系统:window7

        2.Android版本:2.2

               3.eclipse3.5.2(伽利略)

一、基本的流程图(写入文件) 

  2011011813351857.png

二、模拟器运行界面 

  1.主界面              

  2011011813400791.png

  2.保存(不符合条件)

  2011011813434486.png

  3.正常保存

  2011011813443945.png

  4.读取文件

  2011011813451770.png

  5.关于编者

  2011011813454359.png

三、代码如下:

  

  1.保存文件的主要代码 

 

ContractedBlock.gif ExpandedBlockStart.gif 保存的主代码
 
   
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.读取文件的主要代码

 

ContractedBlock.gif ExpandedBlockStart.gif 读取主代码
 
   
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.关于编者的代码

 

 

ContractedBlock.gif ExpandedBlockStart.gif 关于编码代码
 
   
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.业务代码

 

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
/*
* 保存文件
*/
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);
}

 

 

四、小结

  

这个例子只是简单的操作文件的读写,很多地方都不够完善,希望有兴趣的网友们可以互相交流下~~~ 

 

 


 

 


 

转载于:https://www.cnblogs.com/maoan/archive/2011/01/18/1938278.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/319303
推荐阅读
相关标签
  

闽ICP备14008679号