【问题标题】:Is it good idea to create two different files for reading and writing?为读写创建两个不同的文件是个好主意吗?
【发布时间】:2015-07-12 03:10:25
【问题描述】:

我正在构建一个基本的银行应用程序,尽管 Java 语言的使用处于中级水平。 我在那里使用了很多文件输入和输出。在此过程中,我脑海中出现了一些关于 java 中的 file-i/o 的问题。

1) 如果我创建两个不同的文本文件来写入和读取对象会怎样?有什么区别吗?

2) 指定路径(或给出文件名)怎么样,如果我使用// 而不是\\ 呢?

3) 在我的具体情况下,我是否一定需要像这样创建一个新的文件对象:File file=new File("C://Users//Documents//NetBeansProjects//BankFile_assignment.txt");

最后但并非最不重要的一点是,如果您想知道我的 file-i/o 类:

    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;

    }
}

【问题讨论】:

  • 这取决于。如果您允许您的程序同时读取和写入它可能是一个糟糕的解决方案(stackoverflow.com/questions/2751734/…)您是否考虑过使用数据库?在我看来,使用 MySQL 总是比使用文件存储数据更容易。

标签: java file file-io fileinputstream fileoutputstream


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多