【问题标题】:Beginner Java Task file writer初学者 Java 任务文件编写器
【发布时间】:2015-04-29 17:46:36
【问题描述】:

我正在尝试制作一个将文本附加到现有文档中的 java 程序。这就是它带给我的:

import java.util.*;
import java.io.*;
public class Main
{
    public main(String args[])
    {
        System.out.print("Please enter a task: ");
        Scanner taskInput = new Scanner(System.in);
        String task = taskInput.next();
        System.out.print(task);

        PrintWriter writer = new PrintWriter("res\tasks.txt", "UTF-8");
        writer.println("The first line");
        writer.println("The second line");
        writer.close();
    }

}

我有一些错误,不知道如何修复它们。我查看了 Bufferedwriter 但我不知道它是如何使用的,是的,我查看了 javadocs。 C++ 并没有这么复杂。再一次,我想知道如何让程序将文本附加到现有文件。它应该足够高效,可以制作成应用程序。有没有好的资源来教如何编写/附加/读取文件? javadoc 不是为我做的。

【问题讨论】:

  • 你遇到了什么错误?

标签: java file append


【解决方案1】:

以下应该有效:

public static void main(String[] args) {
        try{
            Formatter out = new Formatter("fileName.txt");
            out.format("Write this to file");
            out.close();
        } catch (Exception e) {
            System.out.println("An error occurred");
        }
    }

这是使用 Formatter 对象创建文件(如果它不存在),然后您可以使用方法“format”,就像使用任何打印方法写入文件一样。 try 和 catch 是编译 b/c 所必需的,Formatter 类的构造函数抛出必须捕获的异常。除此之外,只需确保键入: import java.util.Formatter;在文件的开头。

顺便说一句,C++ 并不比 Java 简单,哈哈。干杯。

【讨论】:

    【解决方案2】:

    试试这个,

    PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("tasks.txt", true)));
    

    【讨论】:

    • 虽然这个代码块可以回答这个问题,但如果你能提供一些解释为什么它会这样做,那将是一个更好的答案。
    【解决方案3】:

    Java 中的main() 方法必须具有以下签名

    public static void main(String[] args)
    

    如果没有如上声明的方法,JVM 将无法运行您的程序。而且,就像您关闭了 PrintWriter 一样,您也需要关闭您的 Scanner

    我建议您在深入研究文件 I/O 之前先了解 Java 的基础知识,因为此 API 也会引发大量检查 Exceptions,对于刚接触 Java 的人来说,它会非常困惑到底是什么try catchs 或 throws 正在做。

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 2013-04-21
      • 2016-03-08
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2021-12-24
      • 2014-11-12
      相关资源
      最近更新 更多