Test.txtをsdcardに作成し、それに文字列 "test example"を書き込みました。
その後、私はTest.txtの文字列 "test"を "etc"に置き換えます。
が、これは私のコードです:このコードでandroidは文字列を別の文字列で置き換えます。
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();
}
}
});
、それはSDカード上のTest.txtを作成し、その上で「試験例」を書きました。
しかし、 "test"という文字列を "etc"に置き換えると、動作しません。
どのように修正するのですか? THIはあなたを助けることができる
に任意の例外を試してみてください? –
'String s =" "; s = s.replace(old_str、new_str) '<=それは何もしません...空の文字列で何かを置き換えようとしています – Selvin
@selvin:それを修正する方法 – abcd1234