Sonderzeichen "§" wird nicht erkannt - Stichwort Encoding!

scaary

Bekanntes Mitglied
Hiho,

also, ich habe eine Problem:

Ich habe (Beispiel) folgeden Text:

§Dies§ist§ein§text§

Von dem String sollen jetzt die einzelnen Worte zwischen den "§" in ein Array gepackt werden.
Java:
String input = "Dies§ist§ein§text§";
String fileContent[] = input.split("\\§");

Soweit, so gut.

Will ich jetzt aber auf fileContent[1] zugreifen, wirft er mir ne nullpointerexception.
Warum? Weil fileContent nur 1 gross ist :(
Er speichert den ganzen String einfach so in fileContent[0]

Wenn ich mir fileContent in der Konsole mal ausgeben lasse, bekomme ich folgendes:
�Dies�ist�ein�text�

Ich benutzte Ubuntu & Netbeans, kann das daran liegen?

Danke!
 
Zuletzt bearbeitet:

scaary

Bekanntes Mitglied
Hilft leider nicht, hab ich schon probiert, wird nach wie vor so ausgegeben :(

Trotzdem danke.

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
 
S

SlaterB

Gast
falls das Theme nicht als beendet gilt musst du bisschen mehr posten, z.B. ein vollständiges Testprogramm

denn etwa
Java:
public class Test
{
    public static void main(String[] args)
    {
        String input = "Dies§ist§ein§text§";
        String fileContent[] = input.split("§");
        System.out.println(fileContent[1]);
    }
}
läuft schließlich, mehr kann man aus deinen Beschreibungen nicht erkennen
 

scaary

Bekanntes Mitglied
In der Tat, mein Fehler, entschuldigung!

Also, hier mein Code, wies funktionieren sollte:

Java:
public class Textclass {

        public static void main(String[] args) throws IOException
    {
        createApplicationDataFromFile();
    }


        	/**
	 * Read in a textfile from GST server and create an ApplicationData
	 * @return
	 * @throws IOException
	 */
	   public static String createApplicationDataFromFile()
       throws IOException
   {
               File file = new File ("/home/sascha/test.txt");
       String originalFileContent = FileWorker.getFileContent(file);

       String fileContent[] = originalFileContent.split("§");

       // Testcode
       System.out.println("Laenge " + fileContent.length);
       System.out.println("Inhalt[0]" + fileContent[0]);
       // Testcode Ende

       return fileContent[2];
   }

}


Ausgabe:
Code:
run:
Laenge 1
Inhalt[0]�Dies�ist�ein�text�
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
        at GSTSharedProjectFiles.FileWorking.Textclass.createApplicationDataFromFile(Textclass.java:42)
        at GSTSharedProjectFiles.FileWorking.Textclass.main(Textclass.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Inhalt der Datei:
"§Dies§ist§ein§text§"

Dabei ist der Text in der datei "test.txt". Und diese wird anscheinend fehlerhaft ausgelesen (warum weiss der Geier).
 
S

SlaterB

Gast
das soll wirklich zu finden sein?

für eine mit Windows-Editor erstellte Datei liefert folgendes Programm
Java:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        File file = new File("text.txt");
        FileReader r = new FileReader(file);
        BufferedReader br = new BufferedReader(r);
        String st = br.readLine();
        System.out.println(st);

        br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "8859_1"));
        st = br.readLine();
        System.out.println(st);
    }
}
Ausgabe
Code:
�dies�ist�ein�Test
§dies§ist§ein§Test
 

scaary

Bekanntes Mitglied
Ahhh, ergo hab ich an der falschen stelle nach dem Problem gesucht!

Java:
/**
	 * Get text content from a file.
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static String getFileContent(File file) throws IOException {
		String result = "";
		String tmp = "";
		reader = new BufferedReader(new FileReader(file));
		do {
			tmp = reader.readLine();
			if (tmp != null) {
				result = result + tmp;
			}
		} while (tmp != null);
		reader.close();
		return result;
	}

Hier ist der Wurm drin :)
(Mir ist grade erst aufgefallen, dass ich noch ne Methode zum Einlesen benutze...).

Unter Windows hats bei mir immer ohne probleme geklappt, nur unter Ubunut mag er nicht :(

Da werd ich gleich mal nach suchen!


Edit:

Also, irgendwie... find ich nix zum Thema encoding mit dem Buffered reader, was mir so expliziet weiter hilft... . :(
 
Zuletzt bearbeitet:
S

SlaterB

Gast
siehe mein Posting zwischendurch wobei das für Windows gedacht ist,
was du bei Ubuntu für ein Encoding angeben musst weiß ich grad nicht,
evtl. genau das angegebene, falls die Datei von Windows kopiert wurde
 

scaary

Bekanntes Mitglied
Mhh, ok, ich hab jetzt einfach mal deins genommen:

Java:
	/**
	 * Get text content from a file.
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static String getFileContent(File file) throws IOException {
		String result = "";
		String tmp = "";
		reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "8859_1"));
		do {
			tmp = reader.readLine();
			if (tmp != null) {
				result = result + tmp;
			}
		} while (tmp != null);
		reader.close();
		return result;
	}

Damit funktioniert es, Danke!


Muss ich beim in eine neue Datei schreiben jetzt was beachten?

Java:
	/**
	 * Write text content in a file.
	 * @param file
	 * @param text
	 * @throws IOException
	 */
	public static void writeNewFileContent(File file, String text) throws IOException {
		if(file.exists()) {
			output = new FileWriter(file, true);
			output.write(text);
			output.close();
		} else {
			throw (new FileNotFoundException());
		}
	}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
keine Ahnung welches Encoding du beim Schreiben haben möchtest,
wenn dann wäre zumindest die Suche nach dem umgekehrten Weg zur Angabe des Encodings eine gute Übung
 

scaary

Bekanntes Mitglied
Jupp, also werd ich schon hinbekommen :)
Eigentlich gar keines (in sofern sowas denn moeglich waere ;) ).

Ich will nur das rausgeben, was ich nachher auch wieder einlesen moechte.

Aber trotzdem Danke!

Damit ist mein Problem erstmal geloest :)

LG Scaary
 

musiKk

Top Contributor
Nur der Vollständigkeit halber: Das typische Windows-Encoding in unseren Breiten ist windows-1252 und nicht ISO 8859-1. Ersteres hat noch ein paar mehr Zeichen (z. B. das Euro-Zeichen).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Sonderzeichen wie Euro (€) Java Basics - Anfänger-Themen 4
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
O Regex bei ReplaceAll ersetzt Wort und Sonderzeichen nicht. Java Basics - Anfänger-Themen 9
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
K Sonderzeichen einlesen Java Basics - Anfänger-Themen 3
C Wie erkennt man Sonderzeichen im String? Java Basics - Anfänger-Themen 26
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
W Methoden Konvertierung von Sonderzeichen Java Basics - Anfänger-Themen 2
S Sonderzeichen '|' (u007C) mit Scanner einlesen Java Basics - Anfänger-Themen 1
T byte[] zu String mit Sonderzeichen Java Basics - Anfänger-Themen 2
J Datentypen Cast von int zu char führ zu 'Sonderzeichen' Java Basics - Anfänger-Themen 2
B Char-Vergleich Sonderzeichen Java Basics - Anfänger-Themen 6
X String Sonderzeichen/Zahlen erkennen Java Basics - Anfänger-Themen 3
E String soll mit Großbuchstaben anfangen und keine Sonderzeichen enthalten Java Basics - Anfänger-Themen 4
M Sonderzeichen werden nicht erkannt Java Basics - Anfänger-Themen 3
A Datentypen Sonderzeichen / Strings ersetzen Java Basics - Anfänger-Themen 3
K Sonderzeichen auf der Windowskonsole ausgeben Java Basics - Anfänger-Themen 8
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
F Sonderzeichen bei XML Serialisierung nicht konvertieren Java Basics - Anfänger-Themen 7
S String auf Sonderzeichen untersuchen Java Basics - Anfänger-Themen 6
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
M Sonderzeichen beim usedelimiter Java Basics - Anfänger-Themen 4
Z Sonderzeichen in einem String gezeichnen/bearbeiten Java Basics - Anfänger-Themen 6
S Sonderzeichen in einem String erkennen Java Basics - Anfänger-Themen 20
Benji0815 Sonderzeichen Java Basics - Anfänger-Themen 8
M Sonderzeichen in einer Datei auslesen Java Basics - Anfänger-Themen 3
T JOption Pane: Sonderzeichen verbieten? Java Basics - Anfänger-Themen 14
G String und Sonderzeichen Java Basics - Anfänger-Themen 6
T Sonderzeichen in label Java Basics - Anfänger-Themen 4
B Exception bei ImageIO wegen sonderzeichen Java Basics - Anfänger-Themen 11
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
D Sonderzeichen ä,ü,ö werden als ? ausgegeben Java Basics - Anfänger-Themen 3
T Sonderzeichen Java Basics - Anfänger-Themen 2
G Sonderzeichen automatisch ändern lassen Java Basics - Anfänger-Themen 23
A XML-Datei erzeugen+Sonderzeichen erlauben Java Basics - Anfänger-Themen 10
L Sonderzeichen automatisch escapen. Java Basics - Anfänger-Themen 7
U Sonderzeichen die zweite Java Basics - Anfänger-Themen 16
H GPS über ser. Schnittst. liefert teilweise Sonderzeichen Java Basics - Anfänger-Themen 3
M RandomAccessFile schreibt Sonderzeichen vor String Java Basics - Anfänger-Themen 2
B String mit Sonderzeichen wie " oder = überprüfen Java Basics - Anfänger-Themen 2
H Datei mit Sonderzeichen Java Basics - Anfänger-Themen 8
G Newline Sonderzeichen aus File entfernen u als String speic? Java Basics - Anfänger-Themen 3
T Robot-Problem mit Sonderzeichen Java Basics - Anfänger-Themen 2
M java sonderzeichen filtern Java Basics - Anfänger-Themen 3
M Konvertierung v. Strings (evtl. mit Sonderzeichen) nach HTML Java Basics - Anfänger-Themen 8
M Char Array mit Sonderzeichen in String umwandeln Java Basics - Anfänger-Themen 21
S Umlaute und Sonderzeichen erkennen Java Basics - Anfänger-Themen 12
S HTML Sonderzeichen in Unicode wandeln Java Basics - Anfänger-Themen 5
C Sonderzeichen (ä, ö, ü) in JTextArea Java Basics - Anfänger-Themen 9
J Sonderzeichen Java Basics - Anfänger-Themen 2
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Was wird hier genau getestet? Java Basics - Anfänger-Themen 9
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
M Referenzen zuweisen und wird gleichzeitig ausgeführt Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben