如题,照着第一行代码打的,没有报错,什么都没有,可是就是没有输出文件,连安装路径都没有不要说该路径下写文件,代码如下
package com.yzx.example.filepersistencetest;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit=(EditText)findViewById(R.id.edit);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
String inputText=edit.getText().toString();
save(inputText);
super.onDestroy();
}
public void save(String inputText){
FileOutputStream out=null;
BufferedWriter writer=null;
try{
out=openFileOutput("heheha.txt",Context.MODE_PRIVATE);
writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write(inputText);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(writer!=null){
writer.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
自己试着手动去android/data/目录下创建了<包名>/files文件夹,可是也没有用,求大神帮忙看看
写文件需要读写SD卡权限,6.0及以上版本还需要动态检测权限并重新申请权限
读写权限:
检查并申请权限:(这里以WRITE_EXTERNAL_STORAGE权限为例)
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
//申请WRITE_EXTERNAL_STORAGE权限
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
WRITE_EXTERNAL_STORAGE_REQUEST_CODE);
}
试着在onStart()函数中写,不要在onDestroy()中写,可能与活动周期性有关,也可能是你的权限没加。
系统文件隐藏或是没有权限都有可能呢,这类的程序最好在手机上运行,模拟器上经常会找不到文件
在data/data/应用包名/里面找找