나는 5 개의 EditText 입력을 기록하고 파일에 저장하는 안드로이드 앱을 만들고 있습니다. 내가 알아야 할 것은 개별적으로 각 파일을 가져 와서 결과를 다른 EditText 필드에 출력하는 방법입니다.파일에서 특정 문자열을 검색하는 방법은 무엇입니까? (안드로이드)
MyExampleCode :
package chuck.com;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.app.Activity;
import android.content.Intent;
public class FillFile extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fill_file);
Button submit = (Button) findViewById(R.id.button1);
submit.setOnClickListener(sub);
Button disp = (Button) findViewById(R.id.button2);
disp.setOnClickListener(dis);
}
private OnClickListener sub = new OnClickListener(){
public void onClick(View v){
try {
EditText one = (EditText) findViewById(R.id.editText1);
EditText two = (EditText) findViewById(R.id.editText2);
EditText three = (EditText) findViewById(R.id.editText3);
EditText four = (EditText) findViewById(R.id.editText4);
EditText five = (EditText) findViewById(R.id.editText5);
FileOutputStream fos;
fos = openFileOutput("XML.txt", MODE_APPEND);
String uno = one.getText().toString();
String dos = two.getText().toString();
String tres = three.getText().toString();
String quatro = four.getText().toString();
String cinco = five.getText().toString();
fos.write(uno.getBytes());
fos.write(dos.getBytes());
fos.write(tres.getBytes());
fos.write(quatro.getBytes());
fos.write(cinco.getBytes());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
private OnClickListener dis = new OnClickListener(){
public void onClick(View v){
Intent transf = new Intent(v.getContext(), MainActivity.class);
startActivityForResult(transf, 0);
}
};
}
난에 파일을 내보낼 XML 레이아웃 :이 그런 경우
uno=<editText1 text>
dos=<editText2 text>
...
을 가진 파일을 생성합니다
package chuck.com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File fileDir = getFilesDir();
String fileName = ("XML.txt");
File backup = new File(fileDir, fileName);
boolean content = backup.length() == 0;
try {
backup.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TextView one = (TextView) findViewById(R.id.textView1);
TextView two = (TextView) findViewById(R.id.textView2);
TextView three = (TextView) findViewById(R.id.textView3);
TextView four = (TextView) findViewById(R.id.textView4);
TextView five = (TextView) findViewById(R.id.textView5);
EditText eOne = (EditText) findViewById(R.id.editText1);
EditText eTwo = (EditText) findViewById(R.id.editText2);
EditText eThree = (EditText) findViewById(R.id.editText3);
EditText eFour = (EditText) findViewById(R.id.editText4);
Button input = (Button) findViewById(R.id.input_button);
input.setOnClickListener(insert);
if (content)
{
one.setVisibility(View.GONE);
two.setVisibility(View.GONE);
three.setVisibility(View.GONE);
four.setVisibility(View.GONE);
eOne.setVisibility(View.GONE);
eTwo.setVisibility(View.GONE);
eThree.setVisibility(View.GONE);
eFour.setVisibility(View.GONE);
}
else
{
five.setVisibility(View.GONE);
FileInputStream fis;
fis = openFileInput("XML.txt");
eOne.setText(uno);
eTwo.setText(dos);
eThree.setText(tres);
eFour.setText(quatro, cinco);
}
}
private OnClickListener insert = new OnClickListener(){
public void onClick(View v) {
Intent trans = new Intent(v.getContext(), FillFile.class);
startActivityForResult(trans, 0);
}
};
}
변수 이름에 숫자를 사용하기 시작하면 배열이나'List'를 사용하는 것을 고려해야합니다. 이러한 도구를 적절한 루프와 함께 사용하면 코드를 더 짧게 읽을 수 있습니다. –
파일에 쓰는 데'FileOutputStream'을 사용하고 있기 때문에'FileInputStream'을 사용하여 읽는 것이 좋습니다. –