UTF-16 Datei einlesen

  • Themenstarter Themenstarter TobiL
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

TobiL

Gast
Hi,

ich versuche eine UTF-16 Datei mit folgendem Code einzulesen:

Code:
	// Eine Textdatei wird eingelesen und in den String dateiinhalt abgelegt	
	private static void stringEinlesen(String file) throws IOException{
		dateiinhalt = "";
		File f = new File (file);
		Long size = new Long(f.length());
		FileInputStream in = new FileInputStream(file);
		byte[] buf = new byte[size.intValue()];
		int len = in.read(buf);


		dateiinhalt = new String(buf);
	}

Kommt aber zwischen jedem Buchstaben nen lustiges Viereck... Wenn ich eine Datei in UTF-8 einlese klappt es prima, muss aber unbedingt auch UTF-16 öffnen können.

Hat wer ne Idee?
Vielen Dank schonmal
 
Ja, Google ist ein echter Geheimtipp 😉 also nicht weitersagen...
 
lol ich hatte schon gegooglet wie blöd, aber wohl mit den falschen worten aus meinem begrenzeten wortschatz

aber nochmal nachtrag:

nachdem ich nun in einer schleife ein paar Dateien (Gesamtgroße ca. 30 mb) bekomme ich folgende, lustige Fehlermeldung: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Code:
	private static void stringEinlesen(String file) throws IOException{
		//dateiinhalt = "";
		File f = new File (file);
		Long size = new Long(f.length());
		FileInputStream in = new FileInputStream(file);
		
		
		buf = new byte[size.intValue()];
		int len = in.read(buf);
		buf2 = new String(buf,"utf-16").getBytes("utf-8");


		dateiinhalt = new String(buf2);
	}

was läuft hier falsch?
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben