PDA

View Full Version : Textdatei aus dem IFS öffnen?



Seiten : [1] 2

SourceCoder
12-03-14, 16:22
Schönen guten Abend zusammen,

ich möchte gern eine Textdatei aus dem IFS öffnen doch ich bekomme nur ganz komische Zeichen. Beispiel: "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@Nððð"

Mein Code:



FileInputStream inputStream = new FileInputStream(sFileName);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);


Was genau muss man dabei beachten?

BenderD
12-03-14, 16:29
... Du solltest den Constructor von InputStreamReader mit dem passenden Encoder nehmen (siehe JavaDoc)
D*B

SourceCoder
12-03-14, 16:46
Ich bin mal alle durchgegangen die so in der Doko stehen ohne Erfolg.
Auch mit 819, 850 hat nichts gebracht hmm.

Fuerchau
12-03-14, 17:10
Ich nehme mal an, die IFS-Datei hat wieder mal 273.

SourceCoder
12-03-14, 18:38
Ja, aber mit 273 im Java-Programm funktioniert es auch nicht.
Hab es auch mal auf 819 umgestellt und dann im Java-Programm mit "819" versucht ohne Erfolg.

Fuerchau
12-03-14, 18:47
Dann musst du die IFS-Datei vorher in 1252 kopieren oder so erstellen lassen.
QSH, iconv-Befehl.

BenderD
13-03-14, 08:00
latin1 (ccsid 819) sollte eigentlich immer gehen (auch ohne im Java am encoding was zu machen), es sei denn, da steht schon Murks drin, weil bei der Erstellung und dem reinschreiben schon gemurkst wurde.
Erstelle Dir doch mal ein Streamfile mit Java und vergleiche das mal mit dem, was Du da lesen willst.

D*B

SourceCoder
13-03-14, 10:11
Hab auch bei der Erstellung 819 angegeben ohne Erfolg, das Komische ist ja es funktioniert nur bei Datei die mit dem Befehl "CPYTOSTMF" und dem Parameter " Datenstromdatei-CCSID . . . . . > 819" erzeugt wurden.

STRQSH CMD('setccsid 819 /path/to/myfile.txt')
CHGATR OBJ('/path/to/myfile.txt') ATR(*CCSID) VALUE(819)

Egal wie ich die CCSID setze/ändere das hat keine Auswirkung.

BenderD
13-03-14, 10:30
Hab auch bei der Erstellung 819 angegeben ohne Erfolg, das Komische ist ja es funktioniert nur bei Datei die mit dem Befehl "CPYTOSTMF" und dem Parameter " Datenstromdatei-CCSID . . . . . > 819" erzeugt wurden.

STRQSH CMD('setccsid 819 /path/to/myfile.txt')
CHGATR OBJ('/path/to/myfile.txt') ATR(*CCSID) VALUE(819)

Egal wie ich die CCSID setze/ändere das hat keine Auswirkung.

... beschreibe doch mal genau, was Du da treibst! Mit allen (in Worten allen) Schritten und Programmquellen.

D*B

SourceCoder
13-03-14, 10:38
Schritte:

1. Informationen in eine IFS-Datei schreiben per RPG-Programm, so wie hier (http://www.scottklement.com/rpg/ifs_ebook/textmode.html) beschrieben.
2. Nun möchte ich die IFS-Datei per Java Zeile für Zeile einlesen.
3. Und per System.out.println(); ausgeben.


Java-Code:



FileReader fFileReader = new FileReader(Pfad);
BufferedReader fileBufferedReader= new BufferedReader(fFileReader );

String ausgabe = fileBufferedReader.readLine();
System.out.println(ausgabe + "\r\n");



Und egal welche CCSID die IFS-Datei hat ich bekomme nur "@@@@@@@@@@@@@@".