这个问题可能是重复的问题。我很抱歉。我已经完成了许多类似的帖子,但在我的工作中无法完成。
在我的应用程序中,我想将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;
}
}
答案 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");
如果您仍然遇到任何困难,请告诉我。