Android在内部存储器上加载和保存文件

Android在内部存储器上加载和保存文件,android,Android,我的代码不工作,因为files==null在我尝试加载文件时崩溃,所以我认为它没有创建目录。 单击save时,创建的toast消息文件会显示出来 我认为它输出的路径是正确的。 Path:/data/data/com.example.tiagosilva.amob\u android/files/operationlist/ btn_saveOperationList.setOnClickListener(new View.OnClickListener() { String m

我的代码不工作,因为
files==null
在我尝试加载文件时崩溃,所以我认为它没有创建目录。 单击save时,创建的toast消息文件会显示出来

我认为它输出的路径是正确的。
Path:/data/data/com.example.tiagosilva.amob\u android/files/operationlist/

btn_saveOperationList.setOnClickListener(new View.OnClickListener() {

        String mText = "";
        String n,x,y,z,r;
        @Override
        public void onClick(View v) {


            AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
            builder.setTitle("Save the File");

            final EditText fileName = new EditText(v.getContext());
            fileName.setInputType(InputType.TYPE_CLASS_TEXT);
            builder.setView(fileName);

            builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    mText = fileName.getText().toString();
                    FileOutputStream fileOutputStream;

                    File file = new File(getContext().getFilesDir() +"/OperationLists/",mText);
                    Log.d("Files","Path: " + getContext().getFilesDir() +"/OperationLists/");
                    try {
                        file.createNewFile();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                    try
                    {
                        fileOutputStream = getContext().openFileOutput(mText, Context.MODE_PRIVATE);
                        for(int i=0;i<lv_operationList.getAdapter().getCount() -1;i++)
                        {
                            fileOutputStream.write(lv_operationList.getAdapter().toString().getBytes());

                        }
                        Toast.makeText(getActivity().getBaseContext(), "File Created",
                                Toast.LENGTH_LONG).show();
                        fileOutputStream.close();
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            });

            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });


            builder.show();
        }
    });

    btn_loadOperationList.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            List<String> fileList = new ArrayList<String>();

            String path = getContext().getFilesDir() + "/OperationLists/";
            Log.d("Files","Path: " +path);
            File directory = new File(path);
            File[] files = directory.listFiles();
            Log.d("Files","Size: " +files.length);

            if(files != null) {
                for (int i = 0; i < files.length; i++) {
                    fileList.add(files[i].getName());
                }

                ArrayAdapter<String> directoryList = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, fileList);
                lv_listFiles.setAdapter(directoryList);
            }
        }
    });
btn\u saveOperationList.setOnClickListener(新视图.OnClickListener(){
字符串mText=“”;
字符串n,x,y,z,r;
@凌驾
公共void onClick(视图v){
AlertDialog.Builder=新建AlertDialog.Builder(v.getContext());
setTitle(“保存文件”);
最终EditText文件名=新的EditText(v.getContext());
fileName.setInputType(InputType.TYPE\u CLASS\u TEXT);
setView(文件名);
setPositiveButton(“保存”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
mText=fileName.getText().toString();
FileOutputStream FileOutputStream;
File File=新文件(getContext().getFilesDir()+“/OperationLists/”,多行文字);
Log.d(“文件”,“路径:“+getContext().getFilesDir()+”/OperationList/”);
试一试{
createNewFile();
}捕获(IOE异常){
e、 printStackTrace();
}
尝试
{
fileOutputStream=getContext().openFileOutput(mText,Context.MODE\u PRIVATE);

对于(int i=0;i您能否在清单文件中添加写入外部存储和读取外部存储权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

尝试替换

File File=新文件(getContext().getFilesDir()+“/OperationLists/”,多行文字)

用这个

File File=新文件(getContext().getFilesDir().getAbsolutePath()+“/operationList/”,多行文字)


我有。而且没有意义,因为它是内部存储检查此链接: