国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android studio 將字符串寫入本地的操作方法

2019-10-21 21:45:22
字體:
供稿:網(wǎng)友

File 類的操作:

1.首先需要添加相關(guān)權(quán)限:

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

注意6.0以上需要動態(tài)申請:

private void checkPermission(){    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//6.0以上      int permission = ActivityCompat.checkSelfPermission(getApplication(), Manifest.permission.RECEIVE_SMS);      int permission1 = ActivityCompat.checkSelfPermission(getApplication(), Manifest.permission.WRITE_EXTERNAL_STORAGE);      if(permission != PackageManager.PERMISSION_GRANTED && permission1 != PackageManager.PERMISSION_GRANTED) {        Log.e(TAG,"沒有獲取權(quán)限,請申請");        // 申請一個(或多個)權(quán)限,并提供用于回調(diào)返回的獲取碼(用戶定義)        if (ActivityCompat.shouldShowRequestPermissionRationale(this,            Manifest.permission.RECEIVE_SMS) && ActivityCompat.shouldShowRequestPermissionRationale(this,            Manifest.permission.WRITE_EXTERNAL_STORAGE)) {//這里可以寫個對話框之類的項向用戶解釋為什么要申請權(quán)限,并在對話框的確認(rèn)鍵后續(xù)再次申請權(quán)限          Log.e(TAG,"提示");          ActivityCompat.requestPermissions(this,              new String[]{Manifest.permission.RECEIVE_SMS,Manifest.permission.WRITE_EXTERNAL_STORAGE}, CODE_READ_SMS);        } else {          //申請權(quán)限,字符串?dāng)?shù)組內(nèi)是一個或多個要申請的權(quán)限,1是申請權(quán)限結(jié)果的返回參數(shù),在onRequestPermissionsResult可以得知申請結(jié)果          Log.e(TAG,"您已禁止");          Toast.makeText(MainActivity.this,"沒有獲取讀取手機權(quán)限,請到應(yīng)用中心手動打開該權(quán)限",Toast.LENGTH_SHORT).show();        }      }else{         Log.e(TAG,"獲取到了權(quán)限");      }    }else{      Log.e(TAG,"獲取到了權(quán)限");    }  }  @Override  public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    super.onRequestPermissionsResult(requestCode, permissions, grantResults);    if(requestCode == CODE_READ_SMS){      if(grantResults[0] == PackageManager.PERMISSION_GRANTED) {        Log.e(TAG,"獲取到了權(quán)限");      } else{        // 沒有獲取到權(quán)限,做特殊處理        Log.e(TAG,"沒有獲取到權(quán)限");        Toast.makeText(MainActivity.this,"沒有獲取讀取手機權(quán)限,請到應(yīng)用中心手動打開該權(quán)限",Toast.LENGTH_SHORT).show();      }    }  }

2.saveToFile

a)BufferedWriter 追加

//保存文件到sd卡  public void saveToFile(String content) {    BufferedWriter out = null;    //獲取SD卡狀態(tài)    String state = Environment.getExternalStorageState();    //判斷SD卡是否就緒    if (!state.equals(Environment.MEDIA_MOUNTED)) {      Toast.makeText(this, "請檢查SD卡", Toast.LENGTH_SHORT).show();      return;    }    //取得SD卡根目錄    File file = Environment.getExternalStorageDirectory();    try {      Log.e(TAG, "======SD卡根目錄:" + file.getCanonicalPath());      if(file.exists()){        LOG.e(TAG, "file.getCanonicalPath() == " + file.getCanonicalPath());      }      /*      輸出流的構(gòu)造參數(shù)1:可以是File對象 也可以是文件路徑      輸出流的構(gòu)造參數(shù)2:默認(rèn)為False=>覆蓋內(nèi)容; true=>追加內(nèi)容       */      out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file.getCanonicalPath() + "/readMsg.txt",true)));      out.newLine();      out.write(content);      Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();    } catch (IOException e) {      e.printStackTrace();    } finally {      if (out != null) {        try {          out.close();        } catch (IOException e) {          e.printStackTrace();        }      }    }  }

b)FileWriter追加

 /**   * 使用FileWriter進行文本內(nèi)容的追加   * @param file   * @param content   */  private void addTxtToFileWrite(File file, String content){    FileWriter writer = null;    try {      //FileWriter(file, true),第二個參數(shù)為true是追加內(nèi)容,false是覆蓋      writer = new FileWriter(file, true);      writer.write("/r/n");//換行      writer.write(content);    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if(writer != null){          writer.close();        }      } catch (IOException e) {        e.printStackTrace();      }    }  }}

3.readFromFile()

//從SD卡讀取文件  public String readFromFile() {    //讀的時候要用字符流  萬一里面有中文    BufferedReader reader = null;    FileInputStream fis;    StringBuilder sbd = new StringBuilder();    String state = Environment.getExternalStorageState();    if (!state.equals(Environment.MEDIA_MOUNTED)) {      Toast.makeText(this, "SD卡未就緒", Toast.LENGTH_SHORT).show();      return "";    }    File root = Environment.getExternalStorageDirectory();    try {      fis = new FileInputStream(root + "/readMsg.txt");      reader = new BufferedReader(new InputStreamReader(fis));      String row;      while ((row = reader.readLine()) != null) {        sbd.append(row);      }    } catch (FileNotFoundException e) {      Toast.makeText(this, "文件不存在", Toast.LENGTH_SHORT).show();      //e.printStackTrace();    } catch (IOException e) {      e.printStackTrace();    } finally {      if (reader != null) {        try {          reader.close();        } catch (IOException e) {          e.printStackTrace();        }      }    }    return sbd.toString();  }

4.removeFromFile()

//刪除SD卡文件  public void removeFromFile() {    String state = Environment.getExternalStorageState();    if (!state.equals(Environment.MEDIA_MOUNTED)) {      Toast.makeText(this, "SD卡未就緒", Toast.LENGTH_SHORT).show();      return;    }    //取得SD卡根目錄    File root = Environment.getExternalStorageDirectory();    File myFile=new File(root+"/sd.txt");    //File myFile=new File(root,"sd.txt");    if (myFile.exists()) {      myFile.delete();      Toast.makeText(this,"文件已刪除",Toast.LENGTH_SHORT).show();    }else {      Toast.makeText(this,"文件不存在",Toast.LENGTH_SHORT).show();    }  }}

總結(jié)

以上所述是小編給大家介紹的Android studio 將字符串寫入本地的操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洪湖市| 蒙城县| 肥东县| 通榆县| 阿坝县| 怀集县| 龙山县| 普格县| 开封市| 安陆市| 江都市| 台北县| 资溪县| 安西县| 平陆县| 利津县| 吉水县| 苏尼特右旗| 革吉县| 松桃| 进贤县| 上杭县| 繁昌县| 吉首市| 雷山县| 巍山| 综艺| 乡宁县| 新干县| 开封县| 建宁县| 山丹县| 秭归县| 宝清县| 浮梁县| 江达县| 岐山县| 岐山县| 六盘水市| 大石桥市| 浦县|