效果图:
/L3_Files/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/filename" />
<EditText
android:id="@+id/filename"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/filecontent" />
<EditText
android:id="@+id/filecontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:minLines="5" />
<Button
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
</LinearLayout>
/L3_Files/src/com/example/l3_files/MainActivity.java
package com.example.l3_files;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.io.IOException;
import com.example.l3_files.model.FileService;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private FileService fileService;
private Button saveButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fileService = new FileService(this);
saveButton = (Button) this.findViewById(R.id.save);
saveButton.setOnClickListener(new 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();
try {
fileService.save(fileName, fileContent);
Toast.makeText(MainActivity.this, R.string.success,
Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, R.string.failure,
Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
/L3_Files/src/com/example/l3_files/model/FileService.java
package com.example.l3_files.model;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
public class FileService {
private Context context;
public FileService(Context context) {
super();
this.context = context;
}
public void save(String filename,String filecontent) throws IOException{
FileOutputStream fos=context.openFileOutput(filename, Context.MODE_WORLD_WRITEABLE+Context.MODE_WORLD_READABLE);
fos.write(filecontent.getBytes());
fos.close();
}
public String readFile(String filename) throws IOException{
FileInputStream fis=context.openFileInput(filename);
int len=0;
byte[] buffer=new byte[1024];
ByteArrayOutputStream baos=new ByteArrayOutputStream();
while((len=fis.read(buffer))!=-1)
{
baos.write(buffer,0,len);
}
byte[] data=baos.toByteArray();
baos.close();
fis.close();
return new String(data);
}
}
/L3_Files/src/com/example/l3_files/model/FileServiceTest.java
package com.example.l3_files.model;
import java.io.IOException;
import android.test.AndroidTestCase;
public class FileServiceTest extends AndroidTestCase {
public void testSave() throws IOException {
FileService fileService=new FileService(getContext());
fileService.save("file1.txt", "保存测试");
}
public void testReadFile() throws IOException {
FileService fileService=new FileService(getContext());
String content=fileService.readFile("file1.txt");
System.out.println(content);
}
}