DataInputStream

Status
Nicht offen für weitere Antworten.
O

Osiris64

Gast
Hallo

habe ein kleines Problem
ich lese über eine URL eine datei aus dem WEB in einen DataInputStream.

Dann lese ich byte oder char Weise den Inhalt und schreibe diesen in einen DataOutputStream.

Alles funktioniert auch, nur bei einigen URL's bekomme ich die Umlaute nicht hin.

Hier der Code

void getRSS(String urlST)
{ // Beginn : Methode

try
{ // Begin : try

URLConnection uc = new URL(urlST).openConnection();
DataInputStream buffer = new DataInputStream(uc.getInputStream());
DataOutputStream dos = new DataOutputStream(new FileOutputStream("rss.xml"));

boolean EOF=false;
try
{
while(EOF==false)
{
char wert = buffer.readChar(); // Auch readBytes versucht
System.out.println("Wert als int : 2 " + wert);
dos.writeChar(wert); // Auch writeBytes versucht

// readUTF und writeUTF führen zu einem Fehler //

}
}
catch (EOFException e) {EOF = true;}
dos.flush();
dos.close();


} // End : try
catch (MalformedURLException e) {System.out.println("MAL : " + e.getMessage());}
catch (IOException e) {System.out.println("IO : " + e.getMessage());}


Hier eine andere Variante


void getRSS(String urlST)
{ // Beginn : Methode

try
{ // Begin : try

URLConnection uc = new URL(urlST).openConnection();
DataInputStream buffer = new DataInputStream(uc.getInputStream());

File ausgabeDatei = new File("rss.xml");
FileWriter fw = new FileWriter(ausgabeDatei);
BufferedWriter bw = new BufferedWriter(fw);
String fromRSS="";

BufferedReader r = new BufferedReader(new InputStreamReader(buffer, "UTF-8"));
int c;
while((c = r.read()) != -1)
{
System.out.println("Zeichen : int : " + c + " Char : " + (char)c);
fromRSS = fromRSS + c;
}
bw.write(fromRSS);
bw.flush();
bw.close();
fw.close();
r.close();

} // End : try
catch (MalformedURLException e) {System.out.println("MAL : " + e.getMessage());}
catch (IOException e) {System.out.println("IO : " + e.getMessage());}

Beide Fälle schrieben mir eine saubere XML dazei, nur die Umlaute stimmen nicht.

Hat jemand eine Idee

Danke im Voraus
 
S

SlaterB

Gast
der InputStreamReader(buffer, "UTF-8") sollte direkt auf den InputStream aufbauen, keinen DataInputStream dazwischen,
der interpretiert vielleicht schon die Daten im falschen Format
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben