【问题标题】:How do I write to a text file given a filename through the command line?如何通过命令行写入给定文件名的文本文件?
【发布时间】:2014-11-08 08:14:32
【问题描述】:

我正在尝试使用通过命令行运行配置给出的原始路径写入文件。但是,我很难将这些部分组合在一起。我试图通过 Report 类构造函数传递文件名,然后使用它使用打印方法写入文件。我究竟做错了什么?对不起,我的java很差……

  public static void main(String[] args) throws IOException {
        String roadFilename = args[0];
        String cellNetworkFilename = args[1];
        String imageFilename = args[2];
        String reportFilename = args[3];

    Report report = new Report( 
                new java.io.File(reportFilename)
                );
        report.add(message);
        report.write();
        cellNetwork.hasCoverage(roadNetwork);
    }


public class Report {
    String mess;
    java.util.ArrayList<String> something = new java.util.ArrayList<String>();
    File file;
    private PrintWriter print;
    public Report(File file) {


        this.file=file;
        // TODO Auto-generated constructor stub
    }

    public void add(String message) {

        something.add(message);

    public void write() {


        try {
            print = new PrintWriter( 
                    new BufferedWriter(
                            new FileWriter(file)));
            print.println(something);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            //          e.printStackTrace();
            System.exit(0);
        }

【问题讨论】:

  • 1) 为什么不关闭文件?,2) 为什么e.printStackTrace(); 被注释掉了?

标签: java file-io printwriter


【解决方案1】:

您需要打印 ArrayList 的内容,其中包含您添加的消息。不是 ArrayList 本身。尝试像这样打印它:

print.println(something);

将导致指针字符串打印到文件而不是内容。

您可能需要遍历数组列表并逐行打印其内容。

for(String string: something) {
    print.println(string);
}

【讨论】:

    【解决方案2】:

    您忘记在最后关闭 PrintWriter。

    try {
        print = new PrintWriter(new BufferedWriter(new FileWriter(file)));
    } catch (IOException e) {
        e.printStackTrace();
    }
    if(print != null) {
        print.println(something);
        print.close();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-10
      • 1970-01-01
      • 2016-04-30
      • 2014-02-26
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      相关资源
      最近更新 更多