-1

我希望将结果保存在文件中并使用递归方法重写对象并且什么都不保存。如果我尝试全局声明 printwriter,那么它会给我错误“默认构造函数无法处理隐式超级构造函数抛出的异常类型 UnsupportedEncodingException。必须定义一个显式构造函数”这是代码

public void lengthFind() {
    try {

        writer = new PrintWriter("Results.txt", "UTF-8");
        fileStreamTest obj = new fileStreamTest();
        Scanner s = new Scanner(new File(path));
        int max = 0;

        while (s.hasNextFloat()) {

            int d = (int) s.nextFloat();

            // it filters the time stamp
            if (d <= 5000) {
                String code = obj.GolombCoding(d, dival);

                // finding Max length
                if (code.length() > max) {
                    max = code.length();
                }
            }

        }

        // Dividend Limit check or increase the Dividend
        if (dival == 10) {
            writer.println("Divident has reached it Limit !");
            i++;
            // update the file name
            path = "D:/File Compression/Data/low_freq/low_freq/house_1/channel_"
                    + i + ".dat";
            dival = 10;

        } else {
            dival = dival + 10;
            writer.print("Dividen:" + dival);
        }
        writer.print("Max Length of File " + i + ": " + max);
        writer.println("Path Of the File : " + path);

        int counter = 1;
        // recall the method
        writer.println("Method Call Counter" + counter);

        lengthFind();

    } catch (IOException e) {
        writer.close();
        System.out.println("There is no more File");
        System.exit(0);

    }
4

1 回答 1

1

javadoc

抛出:

  1. FileNotFoundException - 如果给定的文件对象不表示现有的、可写的常规文件并且无法创建具有该名称的新常规文件,或者在打开或创建文件时出现其他错误

  2. SecurityException - 如果存在安全管理器并且 checkWrite(file.getPath()) 拒绝对文件的写访问

  3. UnsupportedEncodingException - 如果指定的字符集不受支持

您需要处理Exception构造函数可能抛出的 。如果你想声明PrintWriterasstatic那么你需要使用静态初始化块。

static PrintWriter pw ;
static {
   try{
     pw = new PrintWriter("Results.txt", "UTF-8");
     }
     catch(IOException e){
        e.printStackTrace();
        throw new RuntimeException(e);  
    }
}
于 2013-07-13T20:13:17.463 回答