Προς το περιεχόμενο

Αντιμετώπιση Java IOException


Evangeli

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας.

 

Ο ακόλουθος κώδικας τρέχει σε γενικές γραμμές καλά. Αλλά για ορισμένα urls που περιέχουν μεγάλη ποσότητα πληροφορίας, παίρνω το ακόλουθο πρόβλημα java.io.IOException: Premature EOF Καμιά ιδέα;

 

>
public static void urlReader(String url, String path, String fileName) {
       String inputLine = null;
       
       URL x = null;
       BufferedReader in = null;
       
       createFile(path, fileName);

       try {
           // Create file
           FileWriter fwstream = new FileWriter(path + fileName);
           BufferedWriter out = new BufferedWriter(fwstream);

           x = new URL(url);
           in = new BufferedReader(new InputStreamReader(x.openStream()));

           while ((inputLine = in.readLine()) != null) {

               if (inputLine.length() > 0) {
                   //System.out.println(inputLine + "\n");
                   out.write(inputLine + "\n");
               }
           }

           // Close the input stream
           in.close();

           // Close the output stream
           out.close();
       } catch (IOException ex) {
           System.out.println(ex);
           System.out.println("Application aborted while function \"urlReader();\" was executing!");
           System.out.println("url = \"" + url + "\"\n");
           System.out.println("inputLine = \"" + inputLine + "\"\n");
           //System.exit(-1);
       }
   }

Δημοσ.

Παιδιά, ξανα-επανέρχομαι στο θέμα γιατί ακόμα δεν μπορώ να βρω λύση. Λοιπόν, προς το παρών μου έχουν προτείνει τις εξής επιλογές (τις παραθέτω ακολούθως) αλλά καμία από αυτές δεν δουλεύει και δεν ξέρω πραγματικά τι να κάνω μιας και οι γνώσεις μου σε Java είναι λιγοστές. Βοηθήστε με ότι γνωρίζεται...

 

static int BUFFER_SIZE=1024;

byte[] buffer = new byte[bUFFER_SIZE]; // or some other size,

int charsRead = 0;

while ( (charsRead = in.read(buffer,0,BUFFER_SIZE) != -1) {

out.write(buffer,0, charsRead);

}

 

while (!in.ready())

{

Thread.sleap(100); // wait for stream to be ready.

}

Δημοσ.

Ναι σωστά.

Παιδιά παραθέτω το stack trace.

 

>
run:
Application aborted while function "urlReader();" was executing!
java.io.IOException: Premature EOF
java.io.IOException: Premature EOF
       at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:538)
       at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:582)
       at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:669)
       at java.io.FilterInputStream.read(FilterInputStream.java:116)
       at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2512)
       at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
       at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
       at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
       at java.io.InputStreamReader.read(InputStreamReader.java:167)
       at java.io.BufferedReader.fill(BufferedReader.java:136)
       at java.io.BufferedReader.readLine(BufferedReader.java:299)
       at java.io.BufferedReader.readLine(BufferedReader.java:362)
       at x.application.urlReader(application.java:429)
       at x.application.downloadPages(application.java:410)
       at x.application.main(application.java:46)
Java Result: -1
BUILD SUCCESSFUL (total time: 2 minutes 10 seconds)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...