Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Come salvare su FIle in java...

    Salve,
    c'è qualcuno che mi può spiegare il codice per salvare su file in JAVA?

    Dovrei sostituire System.out.println (ossia stampa a video) con un salvataggio.

    Mi potreste scrivere il codice che serve,
    o comunque potete dirmi dove trovare istruzioni in merito
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di mainetz
    Registrato dal
    Oct 2003
    Messaggi
    132
    Ciao credo ti possa essere di aiuto la classe java.io prova a dargli un occhio!

    http://java.sun.com/javase/6/docs/ap...e-summary.html

    spero possa esserti di aiuto!

    ciao!!

  3. #3
    Grazie,
    Dovrebbe essere questa per salvare?

    public interface Externalizable
    extends Serializable

    se ci fosse qualcosa in italiano sarei contento....

    Info più precise ci sono?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    5
    //crei gli oggetti che devi salvare assicurandoti che le classi che li istanziano abbiano implementato Serializable.Se devi salvare tipi primitivi usi le classi corrispondenti.

    // Salvataggio

    codice:
    try{
    	ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("nomefile"));
    			out.writeObject(oggetto1);
    			out.writeObject(oggetto2);
                            ....
    			out.close();
    			System.out.println("Scrittura Eseguita");
    			
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    Il ripristino lo fai con un ObjectInputStream.Utilizza il metodo readObject sullo stream di input per leggere dal file e assicurati di fare il casting quando recuperi i dati

  5. #5
    Mi spiego ancora meglio:
    Io ho questo file DomDocumentCleanParser.java :
    codice:
    import org.w3c.dom.*;
    
    import org.xml.sax.SAXException;
    
    import org.xml.sax.SAXParseException;
    
    import javax.xml.parsers.*;
    
     
    
    import java.io.File;
    
    import java.io.IOException;
    
    /** DomDocumentCleanParser: versione di DomDocumentParser
    
        con output dei soli elementi di interesse per il nostro esempio.
    
        */
    
    public class DomDocumentCleanParser
    
    {
        public static org.w3c.dom.Node getChild(org.w3c.dom.Node parentNode,
    
            int childIndex) {
    
                org.w3c.dom.Node childNode = parentNode.getChildNodes().item(childIndex);
    
                return childNode;
    
        }
    
       /* Array che mappa i tipi di elemento con l'indice int corrispondente
    
         * alle specifiche per i node types di:
    
         * Document Object Model (DOM) Level 2 Core Specification
    
         * (http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113)
    
         */
    
        static final String[] typeName = {
    
            "none",
    
            "Element",
    
            "Attr",
    
            "Text",
    
            "CDATA",
    
            "EntityRef",
    
            "Entity",
    
            "ProcInstr",
    
            "Comment",
    
            "Document",
    
            "DocType",
    
            "DocFragment",
    
            "Notation"
    
        };
    
        public static void main(String[] args) {
    
            if (args.length != 1) {
    
                System.err.println("Usage: java DomDocumentCleanParser filename");
    
                System.exit(1);
           }
    
                DomDocumentCleanParser ddp = new DomDocumentCleanParser();
    
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    
                try {
    
               DocumentBuilder builder = dbf.newDocumentBuilder();
    
               Document document = builder.parse( new File(args[0]) );
    
                   ddp.printNodeInfo(document);
    
    
             } catch (SAXException sxe) {
    
               Exception  x = sxe;
    
               if (sxe.getException() != null)
    
                   x = sxe.getException();
    
               x.printStackTrace();
    
     
           } catch (ParserConfigurationException pce) {
    
                pce.printStackTrace();
    
     
    
            } catch (IOException ioe) {
    
               ioe.printStackTrace();
    
            }
    
        } // main
    
     
        private void printNodeInfo(Node currentNode) {
    
                short sNodeType = currentNode.getNodeType();
    
                 //Se è di tipo Element ricavo le informazioni e le stampo
    
                if (sNodeType == Node.ELEMENT_NODE) {
    
                    String sNodeName = currentNode.getNodeName();
    
                    String sNodeValue = searchTextInElement(currentNode);
    
                NamedNodeMap nnmAttributes = currentNode.getAttributes();
    
     
                   System.out.println("Elemento: " + sNodeName);
    
                    System.out.println("Attributi: " + printAttributes(nnmAttributes)); 
    
    		if(sNodeValue!=null){                
    			if (!sNodeValue.trim().equalsIgnoreCase("")) {
    
                        System.out.println("Contenuto: " + sNodeValue); 
    
                    }
    
        		}            
    			System.out.print("\n");
    
                }
    
            int iChildNumber = currentNode.getChildNodes().getLength();
    
            //Se non si tratta di una foglia continua l'esplorazione ricorsivamente
    
                if (currentNode.hasChildNodes()) {
    
                NodeList nlChilds = currentNode.getChildNodes();
    
                    for (int iChild = 0; iChild < iChildNumber; iChild++) {
    
                    printNodeInfo(nlChilds.item(iChild));
    
                    }
    
                }
    
         }
    
        private static String searchTextInElement(Node elementNode) {
    
            String sText = "";
    
            if (elementNode.hasChildNodes()) {
    
                    //Il child node di tipo testo è il primo (e unico nel nostro caso)
    
                Node nTextChild = elementNode.getChildNodes().item(0);
    
                    sText = nTextChild.getNodeValue();
    
                }
    
                return sText;
    
        }
    
        private static String printAttributes(NamedNodeMap nnm) {
    
            String sAttrList = new String();
    
            if (nnm != null && nnm.getLength() > 0) {
    
                for (int iAttr=0; iAttr < nnm.getLength(); iAttr++) {
    
                    sAttrList += nnm.item(iAttr).getNodeName();
    
                    sAttrList += "=";
    
                    sAttrList += nnm.item(iAttr).getNodeValue();
    
                    sAttrList += "; ";
    
                    }
    
                    return sAttrList;
    
                }
    
                else {
    
                    return "assenti";
    
                }
    
        }
    }
    Io al posto che stampare a video in questo progetto, vorrei stampare su file, c'è qualcuno che potrebbe aiutarmi implementando il codice per salvare da questo progetto, o comunque dandomi delle dritte nello specifico!
    Grazie!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxdavide84xx
    Dovrebbe essere questa per salvare?

    public interface Externalizable
    extends Serializable
    No no, sei sulla strada sbagliata. Serializable/Externalizable sono delle interfacce utilizzate nei casi particolari di "serializzazione" degli oggetti.

    Prima di tutto devi stabilire cosa vuoi scrivere: dati testuali? dati binari? degli oggetti? Devi fare l'append o la sovrascrittura? Purtroppo l'utilizzo del package java.io non si può spiegare così su 2 piedi ....
    Prova innanzitutto a leggere il tutorial sull'I/O.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    No no, sei sulla strada sbagliata. Serializable/Externalizable sono delle interfacce utilizzate nei casi particolari di "serializzazione" degli oggetti.

    Prima di tutto devi stabilire cosa vuoi scrivere: dati testuali? dati binari? degli oggetti? Devi fare l'append o la sovrascrittura? Purtroppo l'utilizzo del package java.io non si può spiegare così su 2 piedi ....
    Prova innanzitutto a leggere il tutorial sull'I/O.
    Lo sto leggendo sul libro "Thinking in Java"(versione ITA), comunque se vedi avevo già posto il mio problema nello specifico del programma...perchè avevo intuito non si trattasse del mio caso...
    Se guardate il mio programma, forse riuscirete a rispondermi meglio e a capire nello specifico il mio problema!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxdavide84xx
    Se guardate il mio programma, forse riuscirete a rispondermi meglio e a capire nello specifico il mio problema!
    Se ti interessa semplicemente scrivere su un file usando delle println() allora puoi usare la classe PrintStream o PrintWriter (tra le due classi ci sono alcune differenze che non sto ad elencare ora). Ti suggerisco di leggere il javadoc delle API di Java SE.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Io dovrei controllare un file XML che rispetti una mia DTD...
    pensavo prima di salvare su file e poi di leggere e vedere se validava la DTD, potrebbe essere una soluzione?

    Devo creare un sistema di verifica per XML generato da Word 2003 su delle tesi che devono rispettare dei vincoli...ecco il mio PROGETTO nel dettaglio!

    Che ne dici? Cosa mi converrebbe fare?

  10. #10

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.