Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 15.10.12 Prihlásený: 28.10.12 Príspevky: 4 Témy: 1 | 1 |
Ahojte, vedel by mi prosim niekto poradit v com robim chybu? Potrebujem nacitany string z .txt suboru rozdelit na pole stringov (rozumej vety oddelene bodkou) a stale mi to vyhadzuje chybu.
Kód: public static String[] citajZoSuboru(String menoSuboru) throws IOException { FileReader r = new FileReader(menoSuboru); BufferedReader br = new BufferedReader(r);
//nacitam si prvy znak v stringu, ktory musi udavat pocet viet, podla toho si potom //alokujeme pole stringov, kedze ide o znak zmenime ho na ciselnu hodnotu char v; int pocetViet = 0; String riadok = ""; // ked sa riadok == null tak sme narazili na koniec suboru while ((riadok = br.readLine()) != null) { v = riadok.charAt(0); pocetViet = Character.getNumericValue(v); System.out.println(pocetViet); //toto je tu len pre kontrolu }
br.close(); r = new FileReader(menoSuboru); br = new BufferedReader(r);
// alokujeme pole velkosti poctu viet v subore String[] vysledok = new String[pocetViet]; riadok = ""; int z; // nacitame riadky while (riadok != null) { riadok = br.readLine(); if (riadok != null){ for (z = 0; z < vysledok.length; z++) vysledok[z] = riadok.split("."); } } br.close();
return vysledok; }
Chybu vyhadzuje v tomto riadku vysledok[z] = riadok.split("."); ze nemozem miesat String[] so Stringom. Ale ako to mam inak urobit, poradte?
D.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
vysledok je typu String[], preto vysledok[z] je String (prvok pola).
riadok je String, zavolanim split() dostavas String[].
Uz chapes, preco nemozes jedno do druheho priradit?
|
|
Registrovaný: 15.10.12 Prihlásený: 28.10.12 Príspevky: 4 Témy: 1 | 1 |
dakujem za vysvetlenie, pochopila som, no ked som to opravila vyhodilo mi zase inu chybu.
riadok 116 je opat "vysledok = riadok.split(delimiter);"
Exception in thread "main" java.lang.NullPointerException
at input1.citajZoSuboru(input1.java:116)
at input1.main(input1.java:47)
Citam zo suboru: c:/vstup.txt
4
4.Ahoj Java. Dnes je utorok. Stale mi to nefunguje.
null
Kód: ... r = new FileReader(menoSuboru); br = new BufferedReader(r);
// alokujeme pole velkosti poctu viet v subore String vysledok[] = new String[pocetViet]; riadok = ""; String delimiter = "."; // nacitame vety while (riadok != null) { riadok = br.readLine(); System.out.println(riadok); vysledok = riadok.split(delimiter); } // zavrieme subor br.close();
// vratime dane pole return vysledok; }
|
|
|
nakodil som to po svojom uplne. opravovat ten tvoj kod sa mi nechcelo. uprav si to podla svojich potrieb. čau
inak ten nullpointerexception. hádže ti ho asi preto že prvý krát zbehne cyklus, načíta, splitne (nie som istý), druhý krát načíta ale nemá čo, tak načíta riadok = null, a null sa snaží splitnúť čo vyhodí chybu, lebo "nič" nemôžeš rozdeliť všakže. tolko moja úvaha.
Kód: //TUKE FEI RULEZ :) public class NacitanieZoSuboru {
public static String[] citajZoSuboru(String menoSuboru) throws IOException { FileReader r = new FileReader(menoSuboru); BufferedReader br = new BufferedReader(r); String line; StringBuffer result = new StringBuffer(); while ((line = br.readLine()) != null) { result.append(line); } String [] vysledok; String pom = result.toString(); //System.out.println(pom); vysledok = pom.split("\\."); br.close(); return vysledok; } public static void main(String[] args) { String [] pole; try { pole = citajZoSuboru("pokus.txt"); for(int i = 0; i < pole.length; i++) System.out.println(pole[i].trim()); } catch (IOException ex) { Logger.getLogger(NacitanieZoSuboru.class.getName()).log(Level.SEVERE, null, ex); ex.printStackTrace(); System.err.println(ex.getMessage()); } } }
|
|
Registrovaný: 15.10.12 Prihlásený: 28.10.12 Príspevky: 4 Témy: 1 | 1 |
srdecna vdaka, konecne sa mi to podarilo spojazdnit:-)
len ak mozem poprosit este jednu vec, co osetruje tato vynimka, je to pre pripad, ze by bol subor prazdny?
dakujem za trpezlivost...
Kód: catch (IOException ex) { Logger.getLogger(NacitanieZoSuboru.class.getName()).log(Level.SEVERE, null, ex); ex.printStackTrace(); System.err.println(ex.getMessage()); }
|
|
|
ten catch blok slúži na výpis rôznych zaujímavých informácií o chybe, ak nejaká nastala. V mojom prípade nenastala to čo si dáš do catch bloku je na tebe. môžeš ho nechať prázdny a nič ti nevypíše a môžeš hladať čo je zle. ak nenájde vstupný súbor tak ti ten moj catch blok vypíše java.io.FileNotFoundException: pokus.txt (The system cannot find the file specified)
tá main metóda je len pre odskúšanie mojho zdrojáku či vôbec niečo robí. pekne načíta zo súboru a v cykle vypíše.
|
|
Registrovaný: 15.10.12 Prihlásený: 28.10.12 Príspevky: 4 Témy: 1 | 1 |
dakujem, pochopila
|
|
Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 5 | 1074 | 22.12.2010 11:55 Forty- | | v Assembler, C, C++, Pascal, Java | 2 | 679 | 15.11.2012 21:14 Denco1 | | v PHP, ASP | 4 | 709 | 08.08.2018 13:55 baumax | | v Assembler, C, C++, Pascal, Java | 15 | 679 | 16.12.2010 14:22 arnie16 | | v PHP, ASP | 4 | 461 | 24.05.2009 22:17 Blackdevil | | v JavaScript, VBScript, Ajax | 3 | 473 | 16.03.2010 20:59 juho | | v Assembler, C, C++, Pascal, Java | 2 | 438 | 14.11.2012 18:09 faraon | | v PHP, ASP | 3 | 432 | 10.03.2009 17:34 Tominator | | v Assembler, C, C++, Pascal, Java | 14 | 1941 | 17.10.2010 21:33 remus | | v PHP, ASP | 7 | 447 | 31.01.2009 21:38 stenley | | v Assembler, C, C++, Pascal, Java | 10 | 823 | 03.02.2011 18:13 Bajzik | | v Assembler, C, C++, Pascal, Java | 6 | 450 | 21.04.2014 23:34 XOLOO | | v JavaScript, VBScript, Ajax | 7 | 377 | 10.06.2014 22:57 hatto13 | | v PHP, ASP | 8 | 604 | 29.12.2010 19:36 misko16 | | v PHP, ASP | 11 | 901 | 09.10.2014 20:13 1daemon1 | | v Assembler, C, C++, Pascal, Java | 3 | 429 | 07.02.2014 8:55 m@rtyn |
|