2016-06-28 11 views
0

訪問したそれぞれを保存するために、URL.txtファイルに保存しようとしています。しかし、それはうまく動作しますが、新しいすべてのURLは新しいものを置き換えます。テキストファイルに文字列を追加するには?

1) URLを追加するにはどうすればよいですか?

2)各URLの間に1行のスペースを追加するにはどうすればよいですか?

MainActivity.java

@Override 
public void onPageStarted(WebView view, String url, Bitmap favicon) { 
    super.onPageStarted(view, url, favicon); 
    // don't hide URLBar on welcome screen 

    // save to history.txt 
    HistoryHelper file = new HistoryHelper(view.getContext()); 
    file.writeToSD(url.toString()); 
} 

HistoryHelper.java

public class HistoryHelper { 

    String TAG = "MyFile"; 
    Context context; 

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

    public Boolean writeToSD(String text) { 
     Boolean write_successful = false; 
     File root = null; 
     try { 
      // check for SDcard 
      root = Environment.getExternalStorageDirectory(); 
      Log.i(TAG, "path.." + root.getAbsolutePath()); 

      // check sdcard permission 
      if (root.canWrite()) { 
       File fileDir = new File(
         Environment.getExternalStorageDirectory() + "/AVD/"); 
       fileDir.mkdirs(); 

       File file = new File(fileDir, "History.txt"); 
       FileWriter filewriter = new FileWriter(file); 
       BufferedWriter out = new BufferedWriter(filewriter); 
       out.write(text); 
       out.close(); 
       write_successful = true; 
       Toast.makeText(context, "success!", Toast.LENGTH_LONG).show(); 
      } 
     } catch (IOException e) { 
      Log.e("ERROR:---", 
        "Could not write file to SDCard" + e.getMessage()); 
      write_successful = false; 
      Toast.makeText(context, "operation failed!", Toast.LENGTH_LONG) 
        .show(); 
     } 
     return write_successful; 
    } 
} 

答えて

1

追加モードでファイルを開く

FileWriter fileWriter = new FileWriter (file, true) ; 

使用BufferedWriterの、あなたは毎回ときにファイルを開いていますURL geアクセスされました。ディスクのI/Oオーバーヘッドを最小限に抑えてください。

+0

「ディスクI/Oオーバーヘッド」とは何ですか? – Cassie

+0

アクセスされたすべてのURLに対して、historyHelperの新しいオブジェクトを作成し、毎回ファイルを開くので、1つのオブジェクトを使用してその参照のみを使用してください –

+0

どこにこのコードを追加しますか? – Cassie

関連する問題