文件的保存:
Service类:
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import android.content.Context;
public class FileService {
private Context context;
public FileService(Context context) {
super();
this.context = context;
}
/**
*
* 保存文件
* @param filename
* @param filecontent
*/
public void save(String filename,String filecontent)throws Exception{
//私有操作模式:创建出来的文件只能被本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容
FileOutputStream outStream=context.openFileOutput(filename, Context.MODE_PRIVATE);
outStream.write(filecontent.getBytes());
outStream.close();
}
/**
* 读取文件
* @param filename
* @return
* @throws Exception
*/
public String read(String filename) throws Exception{
FileInputStream inStream=context.openFileInput(filename);
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while((len=inStream.read(buffer))!=-1){
outStream.write(buffer, 0, len);
}
byte[] data=outStream.toByteArray();
String str=new String(data);
return str;
}
}
MainActivity:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button) this.findViewById(R.id.button);
button.setOnClickListener(new ButtonClickListener());
}
private final class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
EditText filenameText=(EditText) findViewById(R.id.filename);
EditText filecontentText=(EditText) findViewById(R.id.filecontent);
String filename=filenameText.getText().toString();
String filecontent=filecontentText.getText().toString();
FileService service=new FileService(getApplicationContext());
try {
service.save(filename, filecontent);
Toast.makeText(getApplicationContext(), R.string.success, 1).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), R.string.fail, 1).show();
e.printStackTrace();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
知识点:
java IO流的运用