Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android小功能實現之文件讀寫

android小功能實現之文件讀寫

編輯:關於Android編程

新建一個Android工程。


一 布局
先看效果圖:
\

打開main.xml修改內容如下:




    

    

    

    

    

二 定義字符串
打開strings.xml添加內容如下:


    File
    Settings


    文件名稱
    文件內容
    保存
    保存成功
    保存失敗


    讀取
    讀取成功
    讀取失敗


三 功能實現
新建一個類FileService,用於文件的讀寫,完整代碼如下:

public class FileService {
    public Context context;

       public  FileService(Context context){
           this.context = context;
       }

    /**
     * 保存字符串到文件
     * @param name 文件名
     * @param content 文件內容
     */
    public void save(String name, String content) throws Exception{
        // MODE_PRIVATE 創建出來的文件,僅能被本應用訪問,而且新寫入的內容會覆蓋原來的內容
         FileOutputStream os = context.openFileOutput(name, Context.MODE_PRIVATE);
        // 默認保存在/data/data//files目錄
        os.write(content.getBytes());
        os.close();
    }

    /***
     * 讀取文件內容
     * @param name 文件名
     * @return
     * @throws Exception
     */
    public String read(String name) throws  Exception{
        FileInputStream is = context.openFileInput(name);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        int len = 0;
        while( (len = is.read(buf)) != -1){
            os.write(buf,0, len);
        }
        byte[] data = os.toByteArray();
        String content = new String(data);
        return  content;
    }
}

四 測試代碼
修改MainActivity.java代碼如下:

    public EditText nameText;
    public EditText saveContentText;
    public EditText readContentText;
    public Button button_read;
    public String filename;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        nameText = (EditText)this.findViewById(R.id.filename);
        saveContentText = (EditText)this.findViewById(R.id.save_file_content);
        readContentText = (EditText)this.findViewById(R.id.read_file_content);

        Button button_save = (Button) this.findViewById(R.id.button_save);
        button_save.setOnClickListener(new ButtonSaveClickListener());

        button_read = (Button) this.findViewById(R.id.button_read);
        button_read.setClickable(false);
        button_read.setOnClickListener(new ButtonReadClickListener());
    }

    private final class ButtonSaveClickListener implements View.OnClickListener{
        public void onClick(View v){
            String name = nameText.getText().toString();
            String content = saveContentText.getText().toString();
            FileService service = new FileService(getApplicationContext());
            try {
                filename = name;
                service.save(name, content);
                filename = name;
                button_read.setClickable(true);
                Toast.makeText(getApplicationContext(),R.string.save_success, Toast.LENGTH_LONG).show();
            }catch (Exception e){
                Toast.makeText(getApplicationContext(),R.string.save_fail, Toast.LENGTH_LONG).show();
                e.printStackTrace();
            }
        }
    }

    private final class ButtonReadClickListener implements View.OnClickListener{
        public void onClick(View v){
            FileService service = new FileService(getApplicationContext());
            try {
                String content = service.read(filename);
                readContentText.setText(content);
                Toast.makeText(getApplicationContext(),R.string.read_success, Toast.LENGTH_LONG).show();
            }catch (Exception e){
                Toast.makeText(getApplicationContext(),R.string.read_fail, Toast.LENGTH_LONG).show();
                e.printStackTrace();
            }
        }
    }

運行結果如圖:



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved