Я не могу использовать PrinterWriter в своей программе, кто-нибудь может помочь мне разобраться в этом?

#java

#java

Вопрос:

 imageToPPMFile(picture,ysize,xsize,maxIntensity,fname);

}//end of main//



public static void imageToPPMFile (int[][][]image, int rows, int cols, int maxintensity, String fname) throws Exception
  

PrintWriter То, что я пытаюсь использовать здесь, не будет печатать цвета в файле ‘fname’, потому что программа запрашивает объявление или catch, когда я создаю исключение выше. Однако исключение было предоставлено мне моим учителем, и поэтому мне нужно сохранить его. Кто-нибудь может сказать мне, что не так с PrintWriter и / или Exception ?

 PrintWriter outp = new PrintWriter(fname); 

int ysize = rows;
int xsize = cols;
int red, green, blue;
outp.println("P3");
outp.println(rows   " "   cols);
outp.println(maxintensity);

for (int r=0; r<ysize; r  )
{ for (int c=0; c<xsize; c  )
     {   red = image[c][r][0];
     outp.print(red   " ");
     green = image[c][r][1];
     outp.print(green   " ");
     blue = image[c][r][2];
     outp.print(blue   " ");

     }
    }//Adding a PrintWriter.outp.close() here results in the variable not being found
   }
  }
  

Комментарии:

1. Итак, если кто-нибудь придет на помощь, проблема в том, что мой учитель сказал мне вставить оператор ‘throws Exception’, но я понятия не имею, как его использовать. Я пробовал вставлять случайные операторы catch и try здесь и там, но поскольку я пока не знаю, как их использовать, это оставило меня довольно озадаченным. Буду признателен за любую помощь!

2. «это не работает» — не совсем подходящее описание. Пожалуйста, прочитайте tinyurl.com/so-hints а затем отредактируйте свой пост. Вероятно, вы захотите перенести свой предыдущий комментарий в текст сообщения и в идеале создать короткую , но полную программу, демонстрирующую проблему. Этой короткой программе, возможно, вообще не нужно записывать файл PPM…

3. Вы должны закрыть свой PrintWriter.out.close()

4. @Cylad: если это просто о том, как использовать исключения, вы должны начать здесь: download.oracle.com/javase/tutorial/essential/exceptions

5. @Cyiad: Нет, это все равно было бы лучше в виде короткой, но полной программы. Вам не нужно добавлять комментарии, вам не нужно иметь ничего общего с изображениями. Вы читали статью, на которую я дал ссылку? (Извините за придирчивость, но умение задать вопрос как можно лучше — чрезвычайно важный навык, ИМО.)

Ответ №1:

В первом случае вы должны close свой PrintWriter . Вызовите outp.close() в той же области, в которой вы создали объект PrintWriter.

Что касается использования throws Exception , взгляните на приведенный ниже пример, и вы поймете это:

 public static void foo() throws Exception {
    // Some code here. Possible occurring of an error.
}
  

Чтобы правильно использовать этот метод, вы должны вызвать это в try-catch блоке или другом методе, который объявляет throws Exception . Например, из приведенного ниже main метода:

 public static void main(String args[]) {
    // Your other code

    // Call the method that may throw an exception
    try {
        foo();
    } catch(Exception ex) {
    }

    // Any other code you want
}