数据 的存储(2)使用文件存储

一.文件保存概述

1.文件保存的位子 

/data/data/<packagename>/files

2.文件操作的方法

openFileInput()   

openFileOutput()

deleteFile()

fileList()....


二.在默认位子创建和写入文件

1.获得一个输出流FileOutputStream对象

openFileOutput("myFile.txt" ,Context.MODE_PRIVATE);

java中的流都要指定输出路径 ,但是在android中,openFileOutput则不用,这就是android的方便的地方了。将会使用默认路径 ,如上面的。

2.向流中写入数据

write( data.getBytes() );

因为在1中我们得到的是FileOutputStream字节流,它只能按字节 写入。所以我们要将data(String类)转成byte类的,

当然我们也可以使用OutputStreamWriter将其转成字符流再操作。

3.close流

fos.close()


三.在默认位置读取文件

1.创建输入流

FileInputStream    fis ;输入字节流

InputStreamReader   isr ;字符流

BufferedReader   br ;    缓冲流,可以一段段读取

fis = openFileInput( "myFile.txt ");

isr =new InputStreamReader (fis);

br = new BufferedReader (isr);  

2. 读取数据 

我们在这里可以用readLine()

String str =null;

str =br.readLine();

3. 关闭流

fis.close();

isr.close();

br.close();

loginBtn.setOnClickListener(new OnClickListener(){   //login on and read
			public void onClick(View v) {
				// TODO Auto-generated method stub
				FileInputStream fis;
				InputStreamReader isr;
				BufferedReader br;
				try {
					fis = openFileInput (PASS);
					isr = new InputStreamReader (fis);
					br = new BufferedReader (isr);
					
					StringBuffer sb = new StringBuffer();
					String s=null;
					while ((s=br.readLine())!=null){
						sb.append(s+"\n");
					}
					pass_in.setText(sb);
					fis.close();
					isr.close();
					br.close();
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
		});
		
		regBtn.setOnClickListener(new OnClickListener(){  //register and save
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String pass = pass_in.getText().toString();
				
				try {
					FileOutputStream fos = openFileOutput(PASS, Context.MODE_PRIVATE);
					fos.write(pass.getBytes());
					fos.close();
					pass_in.setText("");
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}	
			}
		});


你可能感兴趣的:(java)