在内部存储器中创建一个目录并保存文件

时间:2015-02-06 06:23:47

标签: android file

这个问题可能是重复的问题。我很抱歉。我已经完成了许多类似的帖子,但在我的工作中无法完成。

在我的应用程序中,我想将Json数据存储在.txt文件中,并将它们存储在内存中的特定文件夹中。或者直接将文件存储在Android / data文件夹中也没关系。

我使用以下代码执行此操作,但我无法找到按照我的意愿存储的文件。任何人都可以告诉我我的代码有什么问题,我该如何纠正?

String fname, fcontent;
Context context;
ProgressDialog pDialog;

public SaveIntoFile(String fileName, String jsonStr, Context context, ProgressDialog pDialog) {
    this.fname = fileName;
    this.context = context;
    this.fcontent = jsonStr;
    this.pDialog = pDialog;
}

public void write() {
    try {

        File mydir = context.getDir("NepalJapan", Context.MODE_PRIVATE);
        File file = new File(mydir, fname+".txt");

        if (file.exists())
            file.delete();
        // If file does not exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(fcontent);
        bw.close();

    } catch (IOException e) {
        e.printStackTrace();

    }
}

public String read() throws IOException {
    BufferedReader br = null;
    String response = null;

    StringBuffer output = new StringBuffer();

    File mydir = context.getDir("NepalJapan", Context.MODE_PRIVATE);
    File file = new File(mydir, fname+".txt");

    if (!file.exists()) {

        if (pDialog.isShowing())
            pDialog.dismiss();

        return null;
    } else {
        br = new BufferedReader(new FileReader(file));
        String line = "";
        while ((line = br.readLine()) != null) {
            output.append(line + "\n");
        }
        response = output.toString();

        br.close();

        return response;
    }

}

1 个答案:

答案 0 :(得分:0)

以下是将txt文件放入内部存储器的代码段。要查看该文件。你必须在模拟器中运行你的测试应用程序,然后转到DDMS - >文件资源管理器 - > app_NepalJapan - > hello.txt的

public static String write(Context context, String strfilename) {

        String internalMemoryPath = "";

        try {

            File InternalMemoryRoot = context.getDir("NepalJapan", Context.MODE_PRIVATE);
            final File folderPath = new File(InternalMemoryRoot+"");

            Log.v("filePath","filePath: "+folderPath);

            if(!folderPath.exists() && !folderPath.isDirectory()){
                folderPath.mkdirs();
            }

            String filePath = folderPath +"/"+ strfilename;
            Log.v("filePath","filePath: "+filePath);



            File file = new File(filePath);
            FileOutputStream fileOutput = new FileOutputStream(file);

            // create a buffer...
            byte[] buffer = new byte[16384];
            int bufferLength = 1; 
            fileOutput.write(buffer, 0, bufferLength);
            fileOutput.close();

            internalMemoryPath = filePath;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return internalMemoryPath;
    }

您的活动中的致电方法:YourStaticUtilClass.write(context, "hello.txt");

如果您仍然遇到任何困难,请告诉我。