【问题标题】:Can a class have its own private PrintWriter?一个类可以有自己的私有 PrintWriter 吗?
【发布时间】:2015-10-07 23:03:05
【问题描述】:

我正在编写一个 Table 类,它存储有关关系的列名和长度信息。但是,该类本身不存储记录/元组,因为该信息应该通过 Insert 方法直接输入到 txt 文件中。为了通过不为每次调用重新创建 printwriter 来简化插入方法,Table 类是否可以有自己的 Printwriter 可以从 Table.insert 调用?基本上,

public class Table{
    private String tableName;
    private PrintWriter writer;

    public void Table(){
        //get table name
        writer = new PrintWriter(tableName+".txt"); 
    ...}

    public void insert(){
        //get, format, add info to file
        writer.format(formatstring, args);
    }

使用 PrintWriter 有什么缺陷吗?

【问题讨论】:

  • writer 的实例化可能应该在构造函数中。我相信tableName 将在上面的代码中为空,导致错误或文件名只是.txt
  • 你绝对不应该为每个电话创建一个PrintWriter。只要确保你按照@CollinD 的建议去做。

标签: java file-io printwriter


【解决方案1】:

总之 - 是的,您可以拥有PrintWriter 成员。由于您在这里处理的是文件系统,因此在创建 PrintWriter 时可能会出现各种问题。更好的做法是在构造函数中打开它(而不是在成员的定义中内联它)以允许正确的异​​常处理。

【讨论】:

  • 你的意思是在构造函数中打开它而不是在那里定义它?还是在我编辑代码之前你回答了?
  • @PeterSon 是的,我在你编辑问题之前回答了
  • @PeterSon 是的,应该是
猜你喜欢
  • 2015-06-15
  • 1970-01-01
  • 2011-08-24
  • 2016-05-06
  • 2016-05-30
  • 1970-01-01
  • 2017-08-06
  • 2015-05-03
  • 2011-06-30
相关资源
最近更新 更多