PDA

Visualizza la versione completa : [JAVA] Stringhe


79Cloud79
28-01-2005, 17:19
Ciao a tutti,

problemi con stringhe e file.


Praticamente ho un socket che riceve stringhe XML.

Una volta ricevute le salva in un file e poi le elabora.

Ora se stampo la stringa a video tutto ok, risulta corretta
<OTA_HotelResRQ><POS><Source ISOCurrency="USD"/></POS>

quando invece la salvo nel file questa viene salvata
in linguaggio macchina
(se apro il file vedo solo quadratini)

Avete idea del perchè?

Posto il codice del salvataggio



//prendo la richiesta
inputLine = getRequest(cltSocket);

System.out.println("Input: " + inputLine);

File fileWR = new File(NomeFile);
PrintWriter pw = new PrintWriter(new FileOutputStream(fileWR,false));

//scrivo la riga del file
pw.write(inputLine);

//chiudo il file
pw.close();

netarrow
28-01-2005, 17:39
a me non da problemi, vedo in charo la stringa.

Il test che ho fatto è questo ma cambia poco credo:



import java.io.*;

class test {
public static void main(String args[]) throws Exception {
String inputLine = "<OTA_HotelResRQ><POS><Source ISOCurrency=\"USD\"/></POS>";
File fileWR = new File("test.txt");
PrintWriter pw = new PrintWriter(new FileOutputStream (fileWR,false));
pw.write(inputLine);
pw.close();
}
}


con cos'è che apri il file?

:ciauz:

perzem
28-01-2005, 17:43
se vuoi scrivere caratteri usa questo



public boolean salva(){
PrintWriter out=null;
try{
OutputStreamWriter fout = new OutputStreamWriter(new FileOutputStream(
"fileout"));
out = new PrintWriter(fout);

out.print(inputline);
out.close();
out.flush();
}catch(Exception e){return false;}
return true;}

79Cloud79
31-01-2005, 14:33
Non va.....

potrebbe essere un problema di come rewcupero i dati dal socket?

posto il codice



//prendo il buffer di lettura
InputStream inStream = conn.getInputStream();
String HTTP_REQUEST = "";
String XML_REQUEST = "";
boolean bContinua = true;

//prendo la risposta di hoboo
byte[] buf = new byte[conn.getReceiveBufferSize()];
StringBuffer result = new StringBuffer();

while (bContinua){

int bytesRead = 0;
bytesRead = inStream.read(buf);
result.append(new String(buf));

HTTP_REQUEST = HTTP_REQUEST + result.toString().trim();

//ciclo per le parole di stop
for (int i=0;i<stopArray.length;i++){

//se la frase contiene uno dei caratteri di stop
if (HTTP_REQUEST.indexOf(stopArray[i]) != -1){
bContinua = false;
}
}
}

LeleFT
31-01-2005, 16:39
Non penso che dipenda da come recuperi i dati dal Socket. In effetti non dovresti avere visualizzazioni strane nella lettura del file generato. A meno che il problema non dipenda dall'editor che usi per aprire il file... ma mi pare strano comunque... :master:


Ciao. :ciauz:

Loading