HELP!!! Problem v zapisvane na fail.

14 отговора 523 прегледа
#1

HELP!!! Problem v zapisvane na fail.

Spira da zapisva elementite na String masiv v fail, ne e ot daljinata ili ot razmera na masiva.
I posledniq element deto e zapisal ne e celiq, no ne zavisi ot daljinata na elementa, zastoto predi tova zapisva i po-golemi stringove.
Dava NullPointerException

File file = new File("C:/new/"+f);
boolean success = file.createNewFile();
if (success) {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(int i=0; i<row.length-1; i++) {
writer.write(row'['i']');
}
writer.close();
jLabel2.setText("File created!");
} else {
jLabel2.setText("File already exists!");
}

Molq pomognete!!!

Отговор
в отговор на j_fenka #2

Re: HELP!!! Problem v zapisvane na fail.

До колкото схващам row е масив от String-ове. Ако е така тогава какво значи това:

writer.write(row'['i']');

Не трябва ли да бъде така:

writer.write(row);

Тогава е лесно обясним ефекта, който наблюдаваш...

Отговор
в отговор на Hяkoй #3

Re: HELP!!! Problem v zapisvane na fail.

нарочно съм го написала row['i'] защото след него текста ми в форума се форматира с italic. А инче в програмата си ми е row.

Отговор
в отговор на j_fenka #4

Re: HELP!!! Problem v zapisvane na fail.

shto ne probwash da flush() -nesh?
a i fajla po redowe li go iskash? i po redowe li ti go zapiswa?

Редактирано от Tupcho на

Отговор
в отговор на Tupcho #5

Re: HELP!!! Problem v zapisvane na fail.

при close() не се ли извиква и flush ?

The human knowledge belongs to the world.
Отговор
в отговор на Matrix_N #6

Re: HELP!!! Problem v zapisvane na fail.

Абе тя да пробва много е вероятно това да е проблема. Ако се оправи, значи не се извиква. Но по начина, който описва проблема прилича като да затвори преди да е записало. Пък и тази грешка!

Отговор
в отговор на j_fenka #7

Re: HELP!!! Problem v zapisvane na fail.

Няма да е зле за да не се гадае :
1. Постни целя клас.
2. Постни целия Exception (NullPointerException)

Отговор
в отговор на j_fenka #8

Re: HELP!!! Problem v zapisvane na fail.

Tzikalyt ti propuska poslednia element

for(int i=0; i<row.length-1; i++) {

Pone ot pryv pogled NullPointerException shte se generira samo ako row e null ili niakoj ot elementite mu e null.
jLabel2 syshto mozhe da e null.

Отговор
в отговор на Tupcho #9

Re: HELP!!! Problem v zapisvane na fail.

Използвах flush() и вече ми записва всички елементи от масива в файл

Отговор
в отговор на antijb #10

Re: HELP!!! Problem v zapisvane na fail.

NullPointerException идва от това, че предварително съм задала 1000 елемента и цикъла обхожда всичките 1000 елемента, но аз предварително не знам колко ще са ми елементите за това има и такива дето са null.

Отговор
в отговор на j_fenka #11

Re: HELP!!! Problem v zapisvane na fail.

В такъв случай е по-добре да ползваш колекции а не масиви. а и по принцип е по-добре.

Отговор
в отговор на Hяkoй #12

Re: HELP!!! Problem v zapisvane na fail.

Не! Ако имаш масив и искаш да запишеш всеки един елемент във файл, трябва да кажеш:

writer.write(row);

без кавичките!

Отговор
в отговор на Tupcho #13

Re: HELP!!! Problem v zapisvane na fail.

Ползвай ArrayList или Vector. И двата типа масиви могат да нарастват, дори ако предварително си задал големина!

Отговор
в отговор на Aпo #14

Re: HELP!!! Problem v zapisvane na fail.

Защо точно ArrayList? Вектор-а определено не го препоръчвам, освен ако няма ограничения във VM-то

Отговор
в отговор на Aпo #15

Re: HELP!!! Problem v zapisvane na fail.

дали?

Отговор