0
Ich versuche, jeden besuchten URL
in einer .txt
Datei zu speichern. Es funktioniert gut, aber jeder neue URL
ersetzt den älteren.Wie fügt man Zeichenketten zur Textdatei hinzu?
1) Wie füge ich URLs hinzu (oben, nicht unten)?
2) Wie füge ich einen Zeilenabstand zwischen jeder URL hinzu?
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;
}
}
Was ist "Disk I/O Overhead"? – Cassie
Für jede URL, auf die zugegriffen wird, erstellen Sie ein neues Objekt von historyHelper und öffnen die Datei jedes Mal. Versuchen Sie also, ein Objekt zu verwenden, und verwenden Sie nur diese Referenz. –
Wo füge ich diesen Code hinzu? – Cassie