Java Cítanie zo súboru

Programovacie jazyky, rady, poradňa...
Stephanides
Amateur
Amateur
Príspevky: 13
Registrovaný: 14 okt 2012, 8:18

Java Cítanie zo súboru

Príspevok od používateľa Stephanides »

Zdravím, mam problém. Mám nejaký súbor, ktorý si prečítam takto:

Kód: Vybrať všetko

 public static void precitajsubor(){
   
        Reader in = null;
try {
  in = new FileReader("grid_i(0.0010).grd");
 
  int aByte;
  while((aByte = in.read()) != -1) {
    System.out.print((char)aByte);
  }
} catch (IOException e) {
  e.printStackTrace();
} finally {
  try { 
    in.close();
  } catch (Exception e) {
    // do nothing
  }
}
    }
Vystup je nejakého typu že
3.200000e-002 1.980000e-001 1.000000e-003 0
3.200000e-002 1.990000e-001 1.000000e-003 0 // asi 20 000 takých riadkov
Aku podmienku a kde by som mal vložiť aby mi to prečítalo celé ale vypísalo iba tu 0 na konci riadku ? proste iba posledný znak v riadku?? vdaka
Naposledy upravil/-a audiotrack v 14 okt 2012, 12:58, upravené celkom 1 krát.
Dôvod: zdrojáky patria do code, inak sa mažú. Nečítal si poriadne pravidlá
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Java Cítanie zo súboru

Príspevok od používateľa axxis »

Nikde nijaku, wrapni si ten FileReader do BufferedReaderu a citaj ten subor po riadkoch. Na kazdom riadku zavolaj split cez medzeru a vypis stvrty znak pola, ktory Ti to vrati.
Stephanides
Amateur
Amateur
Príspevky: 13
Registrovaný: 14 okt 2012, 8:18

Re: Java Cítanie zo súboru

Príspevok od používateľa Stephanides »

Axxis tvoja rada znie super len som trochu začiatočník a neviem či viem presne očo ide :(
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Java Cítanie zo súboru

Príspevok od používateľa axxis »

Nemam nic v com by som mohol programovat v jave takze len tak od oka ako by to asi mohlo vyzerat

Kód: Vybrať všetko

 BufferedReader in = new BufferedReader(new FileReader("fwhatever.grd"));
string str;
string [] res;
while(str = in.ReadLine() != null)
{
    res = str.split(" ");
    System.out.println(res[3]);
}

Stephanides
Amateur
Amateur
Príspevky: 13
Registrovaný: 14 okt 2012, 8:18

Re: Java Cítanie zo súboru

Príspevok od používateľa Stephanides »

public static void main(String [] args){

try {
BufferedReader vstup = new BufferedReader
(new FileReader ("grid_i(0.0010).grd"));
String str;
String [] res;
while ((str = vstup.readLine()) != null){
res = str.split(" ");
System.out.println(res[4]);
}

vstup.close();
}
catch (IOException e){
System.out.println ("Chyba na vstupu souboru a.txt");
}
}
//takto som to prepísal žiadna chyba v netbeanse .. ale po spustení toto
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at bc.BC.main(BC.java:29)
intelygent
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 04 feb 2007, 20:43

Re: Java Cítanie zo súboru

Príspevok od používateľa intelygent »

skus zmenit riadok

Kód: Vybrať všetko

System.out.println(res[4]);
za

Kód: Vybrať všetko

System.out.println(res[res.length -1]);
vzdy ti bude zobrazova posledne cislo v poli
Stephanides
Amateur
Amateur
Príspevky: 13
Registrovaný: 14 okt 2012, 8:18

Re: Java Cítanie zo súboru

Príspevok od používateľa Stephanides »

no ale nič to nerobí .. iba vypíše ten subor.. nevyberie to znaky ako bolo planovane :)
axxis
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3690
Registrovaný: 29 máj 2007, 21:53
Bydlisko: Spálené mlyny
Kontaktovať používateľa:

Re: Java Cítanie zo súboru

Príspevok od používateľa axxis »

no tak to Ti asi zlyhal ten split, inac si to vysvetlit neviem. pozri sa co sa ulozi do premennej po to prikaze split. ak je tam cely riadok miesto niekolkych mensich stringov tak je asi zle nastaveny delimiter (ta medzera)
intelygent
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 04 feb 2007, 20:43

Re: Java Cítanie zo súboru

Príspevok od používateľa intelygent »

Stephanides napísal: Aku podmienku a kde by som mal vložiť aby mi to prečítalo celé ale vypísalo iba tu 0 na konci riadku ? proste iba posledný znak v riadku??
teda ak chces vypisat iba posledy znak v riadku tak ti mozno staci iba

Kód: Vybrať všetko

System.out.println((!str.isEmpty()) ? str.charAt(str.length() -1) : "prazdny riadok");
Stephanides
Amateur
Amateur
Príspevky: 13
Registrovaný: 14 okt 2012, 8:18

Re: Java Cítanie zo súboru

Príspevok od používateľa Stephanides »

No funguje to stým System.out.println((!str.isEmpty()) ? str.charAt(str.length() -1) : "prazdny riadok");
len vedel by si mi to aj vysvvetliť prečo to takto funguje?
intelygent
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 04 feb 2007, 20:43

Re: Java Cítanie zo súboru

Príspevok od používateľa intelygent »

vsetko co potrebujes najdes v dokumentacii java se api kontkretne pre string najdes tu.

a vysveltnenie ternarneho operatora najdes tu.

inak este pre istotu pred operaciou vystupu este str osetri funkciou trim() -odstrani prazdne znaky na zaciatku a na konci retazca

Kód: Vybrať všetko

str=str.trim();
System.out.println((!str.isEmpty()) ? str.charAt(str.length() -1) : "prazdny riadok");
aby si sa vyvaroval nejakym chybam.
Napísať odpoveď