Foros del Web » Programación para mayores de 30 ;) » Java »

copiar código pagina web a archivo

Estas en el tema de copiar código pagina web a archivo en el foro de Java en Foros del Web. wBuenas noches, tengo el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original import java.io.BufferedReader ; import java.io.BufferedWriter ; import java.io.File ; import java.io.FileOutputStream ; import ...
  #1 (permalink)  
Antiguo 01/02/2014, 14:23
 
Fecha de Ingreso: agosto-2012
Ubicación: Alcalá
Mensajes: 37
Antigüedad: 11 años, 8 meses
Puntos: 0
copiar código pagina web a archivo

wBuenas noches, tengo el siguiente código:

Código Java:
Ver original
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.io.OutputStreamWriter;
  8. import java.io.Writer;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11. import java.util.ArrayList;
  12.  
  13.  
  14.  
  15. public class LeerPaginaEscribirArchivo {
  16.  
  17.     public static void main(String[] args) {
  18.        
  19.        
  20.         String str=null;
  21.         try {
  22.             // Create a URL for the desired page
  23.             URL url = new URL("http://lordpakus.blogspot.com.es/2012/05/lista-de-librerias-java-mas-usadas.html");      
  24.  
  25.             // Read all the text returned by the server
  26.             BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
  27.  
  28.             while ((str = in.readLine()) != null) {
  29.                 str = in.readLine().toString();
  30.                
  31.                 // str is one line of text; readLine() strips the newline character(s)
  32.             }
  33.             in.close();
  34.         } catch (MalformedURLException e) {
  35.         } catch (IOException e) {
  36.         }
  37.  
  38.         try {
  39.             //What ever the file path is.
  40.                     File statText = new File("/home/prueba.txt");
  41.                     FileOutputStream is = new FileOutputStream(statText);
  42.                     OutputStreamWriter osw = new OutputStreamWriter(is);    
  43.                     Writer w = new BufferedWriter(osw);
  44.                    
  45.                     w.write(str);
  46.                     w.close();
  47.                 } catch (IOException e) {
  48.                     System.out.println("Problem writing to the file statsTest.txt");
  49.                 }
  50.            
  51.     }
  52.        
  53.     }

me da error de nullpointerexception en línea 45, por eso puse que apunte a null de inicio pero sigue fallando y no sé cómo arreglarlo.

Cogí un código que copia el codigo de la página web a un string str y lo muestra por pantalla pero ahora qeu quiero copiarlo a un archivo no puedo..

Qué falla? Gracias.

Última edición por antonio715; 01/02/2014 a las 14:25 Razón: el error es en línea 45: w.write(str);
  #2 (permalink)  
Antiguo 02/02/2014, 14:35
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: copiar código pagina web a archivo

Hola:

En la linea 45, si es la que pone en el código que estamos viendo con la numeración que aparece, no puede dar NullPointer. La única opción para que de NullPointer ahí es que w sea null y justo en la línea anterior estás dándole un valor new Buffered. Si este new fallara por el motivo que sea, saltaría la excepción y no llegaría a la línea 45. Un new no puede devolver null.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 03/02/2014, 12:23
 
Fecha de Ingreso: agosto-2012
Ubicación: Alcalá
Mensajes: 37
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: copiar código pagina web a archivo

Exception in thread "main" java.lang.NullPointerException
" at java.io.Writer.write(Writer.java:157)"
" at prueba.LeerPaginaEscribirArchivo.main(LeerPaginaEs cribirArchivo.java:47)"


eso me dice poniendo el archivo destino en "/media/prueba.txt".

Si lo dejo donde ponía en el código original me saltaba el último catch "Problem writing to the file statsTest.txt"

Creo que este segundo catch salta por que no puedo crear un archivo prueba en esa carpeta, he intentado crearlo manualmente y no me deja, supongo que necesitaré permisos o no se podrá escribir ahí o no sé.
En /media sí he podido crear el archivo manualmente pero me salta el nullpointerexcepcion que veis ahí y qeu se corresponde a la línea 45 del código qeu puse en el primer post "w.write(str);"

Alguna idea más? Gracias
  #4 (permalink)  
Antiguo 03/02/2014, 15:57
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: copiar código pagina web a archivo

Hola:

Fíjate en este bucle

Código Java:
Ver original
  1. while ((str = in.readLine()) != null) {
  2.                 str = in.readLine().toString();
  3.                
  4.                 // str is one line of text; readLine() strips the newline character(s)
  5.             }

estas leyendo todas las líneas del fichero, sin hacer nada con ellas, hasta que lees un null y cuando str finalmente es null, entonces continuas fuera del bucle.

Cuando llegas a w.write(str), estás intentando escribir un null y te salta la excepción que estás mostrando.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: html, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.