Java 创建新文件时出现奇怪的问题
我有以下两种方法,用于读取和写入文件:Java 创建新文件时出现奇怪的问题,java,android,android-activity,Java,Android,Android Activity,我有以下两种方法,用于读取和写入文件: /* Write content to a file */ private void writeToFile(ArrayList<String> list) { @SuppressWarnings("unused") File file = new File("jokesBody1.bjk"); FileOutputStream fos; if(list != null){
/* Write content to a file */
private void writeToFile(ArrayList<String> list) {
@SuppressWarnings("unused")
File file = new File("jokesBody1.bjk");
FileOutputStream fos;
if(list != null){
try {
fos = openFileOutput("jokesBody1.bjk",Context.MODE_PRIVATE);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(list);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}else{
try {
fos = openFileOutput("jokesBody1.bjk",Context.MODE_PRIVATE);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject("");
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/* Read file's content */
private ArrayList<String> readFromFile() {
File file = new File("jokesBody1.bjk");
ArrayList<String> list = new ArrayList<String>();
try {
ObjectInputStream ois = new ObjectInputStream( new FileInputStream( file ) );
try {
list = (ArrayList)ois.readObject();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
ois.close();
} catch (IOException e) {
Log.e("log activity", "Can not read file: " + e.toString());
}
return list;
}
好的,它清楚地表明文件不在那里,但是,这段代码不应该创建它吗:
File file = new File("jokesBody1.bjk");
为什么我会犯这个错误?我知道我遗漏了一些小东西——可能是创建文件的一段代码(我不确定),但作为初学者,我无法发现这个问题
File file = new File("jokesBody1.bjk");
只创建指向该路径的文件对象,而不创建实际文件
使用
来实际创建文件
好的,它清楚地表明文件不在那里,但是,这段代码不应该创建它吗:
File file = new File("jokesBody1.bjk");
实际上,不是。它只创建一个文件对象,然后java假定该文件存在。File File File=new File(“jokesBody1.bjk”)代码>我认为这不一定会在文件系统上生成一个新文件,而只是在应用程序中生成一个文件对象。我想您需要方法createnewfile()
。你可以读到它。
file.createNewFile();