Hirdetés

Új hozzászólás Aktív témák

  • ar
    tag

    java-s kerdesem lenne, adott a kovetkezo programreszlet:

         FileReader fin = new FileReader(target);
    int ch;
    do {
    ch = fin.read();
    sout.write( ch );
    System.out.println( ch );
    } while (ch != -1);
    fin.close();


    elso korben az a bajom, hogy az olvasas nem all meg a file vegenel, hanem tovabbmegy (probaltam ugy is, hogya filereader-re van meg huzve egy bufferedreader, ugy is ugyanez van
    miert?
    masodszor pedig: sout egy printwiter, ami egy tcp socketre ir (vagy mire, lenyeg, hogy tcp kapcsolaton keresztul megy at az adat)
    sout mukodik egesz addig, amig szoveget irok ra sout.println-nel, de amikor a fentebb kiolvasott ch-t akarom rairni sout.print-tel, akkor az mar nem megy at
    szinten miert?

    valaszaitokat elore is koszonom

    Elso korben annyit latok, hogy te kiirod az EOF (-1) erteket is, amit nem hiszem, hogy akarsz. Masodsorban nem lenne artalmas a Writer.flush() metodusat hivogatni, vagy egyszeruen lezarni a kimeneti folyamot, ha elkeszultel. Harmadsorban nem artana kivetelt is kezelni :).

    Valahogy igy csinalnam, a kimenetet helyettesitsd be:

    <code>
    Reader fin = null;

    try {
    fin = new FileReader(''filename.txt'');
    int c = 0;
    while ((c = fin.read()) != -1) {
    System.out.println((char) c);
    }
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    try {
    if (fin != null)
    fin.close();
    } catch (IOException e) {
    e.printStackTracer();
    }
    }
    </code>

Új hozzászólás Aktív témák