我想将文件保存到SD卡中的文本中,在完成一些教程后,我会得到一个关于编码的参考资料。 但是在我运行之后它不起作用,只是得到消息“保存的文件失败”。 有没有我的编码错了? 我想保存文件来自活动中的textview。
我还在manifest.xml上添加了一条消息
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我使用此代码
public class PreposisiRemoval extends Activity implements OnClickListener{
Button button;
Button buttonsave;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preposisi_removal);
Intent intent = getIntent();
String result = intent.getStringExtra("resultFilter");
tv = (TextView) findViewById(R.id.textView8);
tv.setMovementMethod(new ScrollingMovementMethod());
tv.setText(result);
tv.setTextSize(14);
buttonsave = (Button) findViewById(R.id.button8);
buttonsave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
try {
File myFile = new File("/sdcard/documents/PreposisiRemoval.txt");
myFile.createNewFile();
FileOutputStream FOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(FOut);
myOutWriter.append(tv.getText());
myOutWriter.close();
FOut.close();
Toast.makeText(getBaseContext(), "Save Files Successful", Toast.LENGTH_SHORT).show();
}
catch (Exception e) {
Toast.makeText(getBaseContext(), "Save Files Failed", Toast.LENGTH_SHORT).show();
}
}
});
其中存在问题?
答案 0 :(得分:0)
打印您捕获的异常,以查看到底出了什么问题:
catch (Exception e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "Save Files Failed", Toast.LENGTH_SHORT).show();
}
我猜你的SD卡上没有documents
个文件夹。在myFile.createNewFile()之前添加以下行:
myFile.getParentFile().mkdirs();
此外,您不应该对SD卡路径进行硬编码。使用此:
File myFile = new File(Environment.getExternalStorageDirectory(),"documents/PreposisiRemoval.txt")
答案 1 :(得分:0)
我可以看到你只需要将一些文本写入设备存储中的特定文件...我想提供一个可以很容易地处理所有其他事情的库。
您只需将此库添加到项目中并使用: WriteLogToFile.appendLog 方法并将文本传递给它。
转到here下载图书馆。 它真的很有帮助。