我尝试实现此示例以从内部存储写入和读取数据,但是当我尝试从同一个 Android 应用程序读取写入的数据时,它不会给我任何结果。可能是什么错误?以下是我使用的代码。
public class SecondScreen extends Activity {
String FILENAME = "hello_file";
String string = "hello world!";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondscreen);
//Using the Internal Storage
try{
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
}
catch(Exception e){
}
TextView result;
result = (TextView)findViewById(R.id.status);
try{
String test = "";
FileInputStream fis = openFileInput("hello_file");
fis.read(test.getBytes());
fis.close();
result.setText(test);
}
catch(Exception e){
}
}
清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wrd.ws"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".ReadWriteDataActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest>
更新后的代码:
public class ReadWriteDataActivity extends Activity {
TextView tv;
String line;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
writeFileToInternalStorage();
readFileFromInternalStorage();
tv = (TextView) findViewById(R.id.textView);
// tv.setText(line);
}
private void writeFileToInternalStorage()
{
String eol = System.getProperty("line.separator");
BufferedWriter writer = null;
try
{
File myFile = new File("/sdcard/mysdfile.txt");
myFile.createNewFile();
writer = new BufferedWriter(new OutputStreamWriter(openFileOutput("myFile.txt", MODE_WORLD_WRITEABLE)));
writer.write("This is a test1."+ eol);
writer.write("This is a test2." + eol);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (writer != null)
{
try
{
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
private void readFileFromInternalStorage()
{
String eol = System.getProperty("line.separator");
BufferedReader input = null;
try
{
input = new BufferedReader(new InputStreamReader(openFileInput("myFile.txt")));
//String line;
StringBuffer buffer = new StringBuffer();
while ((line = input.readLine()) != null)
{
buffer.append(line + eol);
}
tv.setText(buffer.toString().trim());
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (input != null)
{
try
{
input.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
谢谢!