вопрос о записи экземпляров класса в файл

 
 
 
Сообщения:56
я читаю файл, просматриваю содержащуюся в нем инфу, а из нужной создаю элементы класса FactorD(String n, int y, String r, String s, String v, String a, String g):

disease1[k1]= new FactorD(disease[kk], god, regionONE, "scale A", valor[mm][kk],ages[mm], "gender");


Потом я хочу все это записать в другой файл, что делаю как:

 PrintWriter out = new PrintWriter (new FileWriter ("tuta.txt"));
    int k1=0;
    for (int k=0; k<disease.length; k++){ 
     for (int m=0; m<region.length; m++){ 
        for (int j=0; j<299; j++) {   
            for (int i=0; i<123; i++) { 
                FactorD f1 = disease1[k1 
                do{
                    out.println("disease: "+f1.getName()+" year: "+f1.getYear 
                  () + " region: "+f1.getRegion()+" scale: "+f1.getScale()+
                            " value: "+f1.getValue()+" age: "+f1.getAge()+" 
                   gender: "+f1.getGender());
                    k1++;
                    }while (k1<disease1.length);
             }   
       }
     }
  }



и мне выдается ошибка

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

указывает на строку
out.println("disease: "+f1.getName()+" year: "+f1.getYear 
                  () + " region: "+f1.getRegion()+" scale: "+f1.getScale()+
                            " value: "+f1.getValue()+" age: "+f1.getAge()+" 
                   gender: "+f1.getGender());


не знаю, в чем дело, и как это решить!!!
:cry:
 
 
Сообщения:1240
нужный вам туториал:
http://java.sun.com/docs/books/tutorial/essential/io/datastreams.html
 
 
Сообщения:2030
elka:
не знаю, в чем дело, и как это решить

Похоже, что f1 == null. Все ли верно инициализируется? Может быть между кодом чтения файла и записи в другой файл ещё что-то происходит, что может влиять на массив disease1?
Ради простой проверки попробуйте изменить цикл do-while на while - сразу же будет видно, что в массиве ничего нет, если там ничего нет и NPE не вывалиться.

Всякое решение плодит новые проблемы
 
 
Сообщения:56
Спасибо, попродую заменить на while.
Нашла, где у меня в проге вылетает!!! Я ищу в тексте группы символов, использую matcher. До тех пор, пока не ввела класс, все работало нормально, а сейчас после ПЕРВОГО нахождения слова в тексте у меня вылет на Ошибку чтения файла.
or (int i=0; i<=raws; i++){
     for (int j=0; j<=cols; j++){
       for (int m=0; m<year.length; m++) {   
          Pattern pY = Pattern.compile((year[m]));
          Matcher matcher = pY.matcher(createFile[i][j]);
          if (matcher.find()){
             numYear++;
             yearCol[m][j]=j;
             yearRaw[m][i]=i;
           }
          }       // m 
       }      //  j
 }       //  i    


поэтому до записи элементов массива даже не дохожу, поэтому и f1==null. ??
 
 
Сообщения:56
шибка была в размерности массивов, и сейчас смотрю while
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет