BufferedWriter без метода try IOException - PullRequest
0 голосов
/ 10 октября 2018

Я знаю, что эта тема много обсуждалась, и я уже прочитал много постов об этом, но у меня все еще есть проблемы.

Моя проблема в том, что я тоже начинающий, и яЯ не совсем понимаю, как работают и работают функции try и catch.

Я пытался записать в файл какой-либо строковый массив, но он там не отображается, а ошибка перехвата не отображается вприставка.Я не хочу использовать метод try в этом случае, потому что когда я не могу использовать переменную, объявленную для, скажем, BufferedWriter, в других местах, я ограничен только методом try.В противном случае я получаю ошибку.

Это мой код:

import java.io.*;
import java.util.*;
import java.lang.*;
public class FileWrit  {

    public static void main (String[] args){
        try(BufferedWriter writer = new BufferedWriter(new FileWriter("testing.txt"))) {
            String[] anything = new String[3];
            writer.write("anything");
            anything[0] = "case1";
            anything[1] = "This is 1.5";
            anything[2] = "Case 3, i do not know how to count";
            for(String mem: anything) {
                writer.append(mem);
            }
            writer.close();
        } catch(IOException e) {
            System.err.println("Idk when should this appear?");
        }
    }
}

1 Ответ

0 голосов
/ 10 октября 2018

Поскольку часть вашей проблемы «нигде не использовать», вы можете объявить переменную вне блока try catch и назначить ее только внутри.Вы можете выполнить нулевую проверку везде, где хотите, чтобы убедиться в отсутствии проблем, или назначить другое значение в блоке catch.Вот так:

public static void main(String[] args) {
 BufferedWriter writer;
 String[] anything;
 try {
  writer = new BufferedWriter(new FileWriter("testing.txt"))) {
  anything = new String[3];
  writer.write("anything");
  anything[0] = "case1";
  anything[1] = "This is 1.5";
  anything[2] = "Case 3, i do not know how to count";
  for (String mem: anything) {
   writer.append(mem);

  }
  writer.close();
 } catch (IOException e) {
  writer = null;
  e.printstacktrace();
 }
}
}


if(writer != null){
       System.out.println(writer);
}
...