Test.txt을 sdcard에 작성하고 문자열에 "test example"을 씁니다.
그 후에는 "Test"문자열을 Test.txt의 "etc"로 대체합니다.
이 내 코드 :이 코드android는 sdcard의 파일에서 문자열을 다른 문자열로 바꿉니다.
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();
}
}
});
, 그것은 SDCARD에있는 test.txt를 만들고 페이지의 "테스트 예"를 작성했다.
하지만 "test"문자열을 "etc"로 바꾸면 작동하지 않습니다.
어떻게 고칠 수 있습니까? 나는 항상 나를 위해 일한 내 코드 :
희망 생은 당신을 도울 수있는 줄 것이다
예외를 시도 DD를? –
'String s = ""; s = s.replace (old_str, new_str)'<= 그냥 아무 것도하지 않습니다. 빈 문자열에있는 것을 대체하려고합니다. – Selvin
@selvin : 어떻게 수정합니까 – abcd1234