Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8

    lettura a blocchi

    Ciao a tutti sono in alto mare aiutooooo
    dovrei fare una famosa lettura a blocchi per non assorbire troppa RAM
    dalla macchina (cosa che non ho mai fatto)
    Il famoso errore (Exception in thread "main" java.lang.OutOfMemoryError)
    qualcuno potrebbe darmi una mano?

    questa è una parte della mia pagina con la lettura che faccio potreste dare uno sguardo e magari corregerla; non sono ferrato in java.

    grazie

    String inputFileName = "/srv/www/htdocs/estat/classi/rtana.csv";
    //String inputFileName = args[0];

    BufferedReader filebuf = null;
    int nrec = 0;
    int ctrnofil = 0;
    int ctrrecerr = 0;
    String SqlFun = "";
    String T_Act = "";
    int ctrnew = 0;
    int ctrupdati = 0;
    int ctrupesti = 0;
    int ctrupndg = 0;
    String c_vuoto = "";
    boolean rtazchanged = false;

    try
    {
    filebuf = new BufferedReader(new FileReader(inputFileName));
    String line = filebuf.readLine();
    while (string line!=null) {leggi il file }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    a parte la chiusura del try direi che va bene

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8
    perchè allora mi da (Exception in thread "main" java.lang.OutOfMemoryError)
    mi hanno consigliato di fare una lettura ablocchi ma io non sò come si fà potresti darmi una mano?
    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8
    il flusso che leggo e di 23,8 MB

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8
    non ho capito nulla, ripeto non sono ferrato sul java.
    anche se mi hanno detto di modificare il codice non intervenendo sulla jvm.

    aiuto

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'errore è quello evidenziato:
    codice:
    try 
    {
    filebuf = new BufferedReader(new FileReader(inputFileName));
    String line = filebuf.readLine();
    while (String line!=null) {leggi il file }
    In questo modo ad ogni ciclo allochi una nuova variabile stringa.
    Togli la parola chiave String.


    Per la lettura a blocchi devi utilizzare degli array di byte da passare al matodo read() della classe FileInputStream.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8
    non sono capace,
    se mando il codice qualcuno può dare uno sguardo?

    grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    8
    ho cambiato la lettura cosa ne dite

    try
    {

    InputStream in = new FileInputStream(inputFileName);
    while(true) {
    int i = in.read();
    if(i==-1)
    break;
    else
    System.out.print((char)i);
    }

    potrebbe risolvere il problema.

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.