Agemiro_Alves 25 de nov. de 2018
package persistencia;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.FileNotFoundException ;
import java.io.IOException ;
import java.io.PrintWriter ;
import com.thoughtworks.xstream.XStream ;
import com.thoughtworks.xstream.io.xml.DomDriver ;
import pojo.Central ;
public class Persistencia {
private XStream xstream = new XStream ( new DomDriver ());
public void salvarDados ( Central obj , String nomeXML ) {
try {
String xml = xstream . toXML ( obj );
File arquivo = new File ( nomeXML );
arquivo . createNewFile ();
PrintWriter salvar = new PrintWriter ( arquivo );
salvar . print ( xml );
salvar . close ();
} catch ( IOException e ) {
e . printStackTrace ();
}
}
public Central recuperarDados ( String nomeXML ) {
File arquivo = new File ( nomeXML );
try {
if ( arquivo . exists ()) {
FileInputStream arq = new FileInputStream ( arquivo );
return ( Central ) xstream . fromXML ( arq );
}
} catch ( FileNotFoundException e ) {
e . printStackTrace ();
}
return new Central ();
}
}
staroski 25 de nov. de 2018
Agemiro_Alves 25 de nov. de 2018
Exception in thread "AWT-EventQueue-0" com . thoughtworks . xstream . io . StreamException :
at com . thoughtworks . xstream . io . xml . DomDriver . createReader ( DomDriver . java : 117 )
at com . thoughtworks . xstream . io . xml . DomDriver . createReader ( DomDriver . java : 84 )
at com . thoughtworks . xstream . XStream . fromXML ( XStream . java : 1094 )
at persistencia . Persistencia . recuperarDados ( Persistencia . java : 37 )
at telas . TelaInicial $ OuvinteBotaoLogin . actionPerformed ( TelaInicial . java : 177 )
at javax . swing . AbstractButton . fireActionPerformed ( Unknown Source )
at javax . swing . AbstractButton $ Handler . actionPerformed ( Unknown Source )
at javax . swing . DefaultButtonModel . fireActionPerformed ( Unknown Source )
at javax . swing . DefaultButtonModel . setPressed ( Unknown Source )
at javax . swing . plaf . basic . BasicButtonListener . mouseReleased ( Unknown Source )
at java . awt . AWTEventMulticaster . mouseReleased ( Unknown Source )
at java . awt . Component . processMouseEvent ( Unknown Source )
at javax . swing . JComponent . processMouseEvent ( Unknown Source )
at java . awt . Component . processEvent ( Unknown Source )
at java . awt . Container . processEvent ( Unknown Source )
at java . awt . Component . dispatchEventImpl ( Unknown Source )
at java . awt . Container . dispatchEventImpl ( Unknown Source )
at java . awt . Component . dispatchEvent ( Unknown Source )
at java . awt . LightweightDispatcher . retargetMouseEvent ( Unknown Source )
at java . awt . LightweightDispatcher . processMouseEvent ( Unknown Source )
at java . awt . LightweightDispatcher . dispatchEvent ( Unknown Source )
at java . awt . Container . dispatchEventImpl ( Unknown Source )
at java . awt . Window . dispatchEventImpl ( Unknown Source )
at java . awt . Component . dispatchEvent ( Unknown Source )
at java . awt . EventQueue . dispatchEventImpl ( Unknown Source )
at java . awt . EventQueue . access $ 500 ( Unknown Source )
at java . awt . EventQueue $ 3. run ( Unknown Source )
at java . awt . EventQueue $ 3. run ( Unknown Source )
at java . security . AccessController . doPrivileged ( Native Method )
at java . security . ProtectionDomain $ JavaSecurityAccessImpl . doIntersectionPrivilege ( Unknown
Source )
at java . security . ProtectionDomain $ JavaSecurityAccessImpl . doIntersectionPrivilege ( Unknown
Source )
at java . awt . EventQueue $ 4. run ( Unknown Source )
at java . awt . EventQueue $ 4. run ( Unknown Source )
at java . security . AccessController . doPrivileged ( Native Method )
at java . security . ProtectionDomain $ JavaSecurityAccessImpl . doIntersectionPrivilege ( Unknown
Source )
at java . awt . EventQueue . dispatchEvent ( Unknown Source )
at java . awt . EventDispatchThread . pumpOneEventForFilters ( Unknown Source )
at java . awt . EventDispatchThread . pumpEventsForFilter ( Unknown Source )
at java . awt . EventDispatchThread . pumpEventsForHierarchy ( Unknown Source )
at java . awt . EventDispatchThread . pumpEvents ( Unknown Source )
at java . awt . EventDispatchThread . pumpEvents ( Unknown Source )
at java . awt . EventDispatchThread . run ( Unknown Source )
Caused by : com . sun . org . apache . xerces . internal . impl . io . MalformedByteSequenceException :
Byte inválido 2 da sequência UTF - 8 do byte 3.
at com . sun . org . apache . xerces . internal . impl . io . UTF8Reader . invalidByte ( Unknown Source )
at com . sun . org . apache . xerces . internal . impl . io . UTF8Reader . read ( Unknown Source )
at com . sun . org . apache . xerces . internal . impl . XMLEntityScanner . load ( Unknown Source )
at com . sun . org . apache . xerces . internal . impl . XMLEntityScanner . skipChar ( Unknown Source )
atcom . sun . org . apache . xerces . internal . impl . XMLDocumentFragmentScannerImpl $ FragmentCo
ntentDriver . next ( Unknown Source )
at com . sun . org . apache . xerces . internal . impl . XMLDocumentScannerImpl . next ( Unknown Source )
atcom . sun . org . apache . xerces . internal . impl . XMLDocumentFragmentScannerImpl . scanDocume
nt ( Unknown Source )
at com . sun . org . apache . xerces . internal . parsers . XML11Configuration . parse ( Unknown Source )
at com . sun . org . apache . xerces . internal . parsers . XML11Configuration . parse ( Unknown Source )
at com . sun . org . apache . xerces . internal . parsers . XMLParser . parse ( Unknown Source )
at com . sun . org . apache . xerces . internal . parsers . DOMParser . parse ( Unknown Source )
at com . sun . org . apache . xerces . internal . jaxp . DocumentBuilderImpl . parse ( Unknown Source )
at com . thoughtworks . xstream . io . xml . DomDriver . createReader ( DomDriver . java : 108 )
... 41 more
staroski 26 de nov. de 2018
Chegou a conferir o conteúdo de seu XML?
Parece corrompido.
Experimenta fazer um flush antes de fechar o arquivo:
PrintWriter salvar = new PrintWriter ( arquivo );
salvar . print ( xml );
salvar . flush ;
salvar . close ();
Agemiro_Alves 26 de nov. de 2018
staroski 26 de nov. de 2018
Era só por causa do flush()?
Agemiro_Alves 26 de nov. de 2018 1 like
Não, era por causa que o XML nao aceita palavras com acento.