zoukankan      html  css  js  c++  java
  • Android 读取和保存文件(手机内置存储器)

    1:activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TextView 
            android:id="@+id/tv_filename"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文件名称"/>
        <EditText 
            android:id="@+id/et_filename"
            android:layout_below="@id/tv_filename"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        <TextView 
            android:id="@+id/tv_content"
            android:layout_below="@id/et_filename"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文件内容"/>
        <EditText 
            android:id="@+id/et_content"
            android:layout_below="@id/tv_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        
        <Button 
            android:id="@+id/btn_save"
            android:layout_below="@id/et_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="保存"/>
        
        <Button 
            android:id="@+id/btn_read"
            android:layout_below="@id/btn_save"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="读取"/>
    </RelativeLayout>

    2:文件操作类:FileService.java

    public class FileService {
    	private Context context=null;
    	
    	public FileService(Context context){
    		this.context=context;
    	}
    	
    	//save file
    	public void saveFile(String filename,String content) throws Exception{
    		FileOutputStream out=context.openFileOutput(filename, Context.MODE_PRIVATE);
    		out.write(content.getBytes());
    		out.close();
    	}
    	
    	//read file
    	public String readFile(String filename)throws Exception{
    		FileInputStream is=context.openFileInput(filename);
    		byte b[]=new byte[1024];
    		int len=0;
    		ByteArrayOutputStream baos=new ByteArrayOutputStream();
    		//先把数据写入内存
    		while((len=is.read(b))!=-1){
    			baos.write(b,0,len);
    		}
    		//从内存中读取数据
    		byte data[]=baos.toByteArray();
    		
    		baos.close();
    		is.close();
    		
    		return new String(data);
    	}
    }
    

    3:MainActivity.java

    public class MainActivity extends Activity {
    	private FileService fileService=null;
    	private Button btnSave=null,btnRead=null;
    	private EditText etFilename=null;
    	private EditText etContent=null;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		btnSave=(Button)findViewById(R.id.btn_save);
    		btnRead=(Button)findViewById(R.id.btn_read);
    		etFilename=(EditText)findViewById(R.id.et_filename);
    		etContent=(EditText)findViewById(R.id.et_content);
    		
    		fileService=new FileService(MainActivity.this);
    		
    		btnSave.setOnClickListener(new OnClickListener(){
    			public void onClick(View view){
    				String filename=etFilename.getText().toString();
    				String content=etContent.getText().toString();
    				try {
    					fileService.saveFile(filename, content);
    					Toast.makeText(MainActivity.this, "Save file success!", Toast.LENGTH_SHORT).show();
    				} catch (Exception e) {
    					Toast.makeText(MainActivity.this, "Save file error!", Toast.LENGTH_SHORT).show();
    				}
    			}
    		});
    		
    		btnRead.setOnClickListener(new OnClickListener(){
    			public void onClick(View view){
    				String filename=etFilename.getText().toString();
    				try {
    					String text=fileService.readFile(filename);
    					etContent.setText(text);
    				} catch (Exception e) {
    					Toast.makeText(MainActivity.this, "Read file error!", Toast.LENGTH_SHORT).show();
    				}
    			}
    		});
    	}
    
    }
    

      

    4:运行结果

      

  • 相关阅读:
    POJ 基本算法(3)
    给定范围的素数筛选(POJ 2689)
    无向图、有向图的最小环
    第k短路和A*
    HDU 4302 Holedox Eating (set + iterator)
    笛卡尔树
    HDU 多校联合第一场
    HDU 多校联合第二场
    POJ 图算法(3)
    POJ 1038 Bugs Integrated, Inc. (状态dp)
  • 原文地址:https://www.cnblogs.com/yshyee/p/3362963.html
Copyright © 2011-2022 走看看