创建两个不同的文件用于读写是个好主意吗?
Is it good idea to create two different files for reading and writing?
我正在构建一个基本的银行应用程序,尽管 java 语言的使用是中级水平。
在那里我经常使用文件输入和输出。一路上,我脑海中浮现出一些关于 java.
中的 file-i/o
的问题
1) 如果我创建两个不同的文本文件来写入和读取对象会怎样?这有什么区别吗?
2) 指定路径(或给出文件名)如何,如果我使用 //
而不是 \
呢?
3) 在我的特定情况下,我是否需要像这样创建一个新的文件对象:File file=new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
?
最后但同样重要的是,如果你想知道我的 file-i/o class:
public class ReaderWriter {
public void writeToFile(List<BankAccount> accounts) {
try {
File file = new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(accounts);//take the arrayList
oos.flush();
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public List<BankAccount> readFromFile() {
List<BankAccount> readData = null;
try {
File file = new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
readData = (List<BankAccount>) ois.readObject();
ois.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return readData;
}
}
1) 更好的方法是使用数据库(mySQL、SQLite 等)轻松访问所有数据,而不用 I/O 担心。
2) 如果您的应用程序可能在不同的操作系统上运行,这是一种避免系统特定符号出现任何问题的安全方法(Windows 上的 \
,Unix 上的 /
, Mac) 是以File.separator
为例。 More about this subject .
3) 它必须在 Windows 上工作,但在 Unix 上失败。您可以使用(适应路径)这个而不是: File file = new File(System.getProperty("user.home")+ File.separator + BankFile_assignment.txt);
See this .
我正在构建一个基本的银行应用程序,尽管 java 语言的使用是中级水平。 在那里我经常使用文件输入和输出。一路上,我脑海中浮现出一些关于 java.
中的file-i/o
的问题
1) 如果我创建两个不同的文本文件来写入和读取对象会怎样?这有什么区别吗?
2) 指定路径(或给出文件名)如何,如果我使用 //
而不是 \
呢?
3) 在我的特定情况下,我是否需要像这样创建一个新的文件对象:File file=new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
?
最后但同样重要的是,如果你想知道我的 file-i/o class:
public class ReaderWriter {
public void writeToFile(List<BankAccount> accounts) {
try {
File file = new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(accounts);//take the arrayList
oos.flush();
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public List<BankAccount> readFromFile() {
List<BankAccount> readData = null;
try {
File file = new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
readData = (List<BankAccount>) ois.readObject();
ois.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return readData;
}
}
1) 更好的方法是使用数据库(mySQL、SQLite 等)轻松访问所有数据,而不用 I/O 担心。
2) 如果您的应用程序可能在不同的操作系统上运行,这是一种避免系统特定符号出现任何问题的安全方法(Windows 上的 \
,Unix 上的 /
, Mac) 是以File.separator
为例。 More about this subject .
3) 它必须在 Windows 上工作,但在 Unix 上失败。您可以使用(适应路径)这个而不是: File file = new File(System.getProperty("user.home")+ File.separator + BankFile_assignment.txt);
See this .