1

我在这段代码中遇到了我不理解的错误。我按照 Java 文档进行了所有设置,但显然我不明白。首先,这里是代码:

import java.io.FileNotFoundException;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;

public class CreateTextFile {

    private Formatter output; //object used to output text to file

    public void openFile() throws FileNotFoundException {
        try {
            output = new Formatter( "sets.txt" ) {    //First Error

                @Override
                public String format(LogRecord record) {
                    throw new UnsupportedOperationException("Not supported yet.");
                }


            }; //open the file
        } catch ( SecurityException securityException ) {
            System.err.println("You do not have access to this file.");
            System.exit(1); //terminate the program
        } catch (FileNotFoundException fileNotFoundException) {  //second error

        }
    }
}

第一个错误:

Formatter 类中的构造函数 Formatter 不能应用于给定类型;必需:未找到参数:字符串原因:实际参数列表和形式参数列表的长度不同

我理解错误信息,但我不同意。Formatter 肯定有一个构造函数,它采用单个字符串(见下文)

第二个错误:

Formatter 类中的构造函数 Formatter 不能应用于给定类型;必需:未找到参数:字符串原因:实际参数列表和形式参数列表的长度不同

正如下面的 Java 文档中所述,我在方法声明中抛出 FileNotFoundException。

这直接来自 [http://doc.java.sun.com/DocWeb/api/java.util.Formatter][1]

Formatter(String fileName) throws FileNotFoundException 用指定的文件名构造一个新的格式化程序。

使用的字符集是此 Java 虚拟机实例的默认字符集。

使用的语言环境是此 Java 虚拟机实例的默认语言环境。

fileName 用作此格式化程序目标的文件的名称。如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。输出将被写入文件并被缓冲。

引发 SecurityException:如果存在安全管理器并且 checkWrite(fileName) 拒绝对文件的写访问

引发 FileNotFoundException:如果给定的文件名不表示现有的、可写的常规文件并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误

不知道如何清除这些错误。任何人都可以帮忙吗?谢谢!

4

2 回答 2

2

在您的代码中:

import java.util.logging.Formatter;

在您引用的 Javadoc 的 URL 中:

java.util.Formatter

不是同一个班。

于 2013-02-16T20:47:08.363 回答
2

您指的是 java.util.Formatter 的文档,但您正在导入 java.util.logging。

于 2013-02-16T20:47:22.277 回答