Ich habe erstellt Test.txt auf SD-Karte und schreiben Zeichenfolge "Testbeispiel" darauf.
Danach ersetze ich String "test" durch "etc" in Test.txt.
dies ist mein Code:Android ersetzen Zeichenfolge durch eine andere Zeichenfolge in der Datei auf SD-Karte
String origin_str, old_str , new_str;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_t2);
origin_str = "test example";
old_str = "test";
new_str = "etc";
Button bt_create2 = (Button)findViewById(R.id.bt_createfileT2);
bt_create2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
File newFolder = new File(Environment.getExternalStorageDirectory(), "TestFolder");
if (!newFolder.exists()) {
newFolder.mkdir();
}
File file = new File(newFolder, "Test" + ".txt");
if (!file.exists()) {
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut);
myOutWriter.append(origin_str);
myOutWriter.close();
fOut.close();
}
} catch (Exception e) {
System.out.println("e: " + e);
}
}
});
Button bt_replacefileT2 = (Button)findViewById(R.id.bt_replacefileT2);
bt_replacefileT2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
File file = new File(Environment.getExternalStorageDirectory() + "/TestFolder/Test.txt");
FileInputStream in = new FileInputStream(file);
int len = 0;
byte[] data1 = new byte[1024];
while (-1 != (len = in.read(data1))){
if(new String(data1, 0, len).contains(old_str)){
String s = "";
s = s.replace(old_str, new_str);
}
}
}
catch (Exception e){
e.printStackTrace();
}
}
});
mit diesem Code, war es Test.txt auf SD-Karte und schreiben Sie „Testbeispiel“ auf sie erstellen.
aber wenn Zeichenfolge "Test" durch "etc" ersetzen, funktioniert es nicht.
wie es zu beheben?
jede Ausnahme ?? –
'String s =" "; s = s.replace (old_str, new_str) '<= es tut einfach nichts ... Sie versuchen, etwas in der leeren Zeichenfolge zu ersetzen – Selvin
@selvin: wie es zu beheben – abcd1234