Hallo!
Leider wurde ich durch die Boardsuche nicht fündig, daher kommt meine erster Beitrag im Forum direkt als eine vermutlich saublöde Frage daher.
Ich versuche einen String unter RandomAccessFile in eine Datei zu schreiben. Dazu benutze ich writeUTF, was auch den String so wie es sein soll, in die betreffende Datei einfügt. Leider setzt er dabei vor jeden String ein Sonderzeichen, dessen Herkunft ich mir nicht erklären kann. Ich meine alles so gemacht zu haben, wie ich es mir aus den Referenzen und einigen Beispielen abgeleitet habe. Bevor ich noch mehr Schwachsinn labere habe ich das ganze vereinfacht als Code vorbereitet:
Den Zeilenvorschub am Ende der Strings habe ich nur beigefügt, damit man sie besser lesen kann, ohne ihn besteht das ganze Problem aber genauso. Testweise habe ich es auch mit sequenziellem Zugriff versucht, aber die Datei soll später mal wahlfrei behandelt werden können. Beim stream() werden die Sonderzeichen aber genauso eingefügt.
Wenn ich spaßeshalber writeChars() benutze werden die Strings zwar ohne Sondezeichen, dafür aber mit einem Leerzeichen vor jedem Char eingetragen.
Als Entwicklungsumgebung nutze ich JDK 1.6.0_3 mit JOE als Editor. Als Compiler und Interpreter sind die javac.exe und java.exe aus dem JDK/bin-Verzeichnis eingetragen.
Vielen Dank für jeden Tip, ich stehe momentan wie der Ochs vorm Berg
Leider wurde ich durch die Boardsuche nicht fündig, daher kommt meine erster Beitrag im Forum direkt als eine vermutlich saublöde Frage daher.
Ich versuche einen String unter RandomAccessFile in eine Datei zu schreiben. Dazu benutze ich writeUTF, was auch den String so wie es sein soll, in die betreffende Datei einfügt. Leider setzt er dabei vor jeden String ein Sonderzeichen, dessen Herkunft ich mir nicht erklären kann. Ich meine alles so gemacht zu haben, wie ich es mir aus den Referenzen und einigen Beispielen abgeleitet habe. Bevor ich noch mehr Schwachsinn labere habe ich das ganze vereinfacht als Code vorbereitet:
Code:
import java.io.*;
class foo
{
public static void main(String args[]) throws IOException
{
random();
stream();
}
static void random() throws IOException
{
int i;
File datei = new File("TEST1.DAT");
RandomAccessFile data = new RandomAccessFile("TEST1.DAT","rw");
for (i=1; i<=10; i++)
{
String daten="RandomAccessFile-Test "+i+"\n";
data.writeUTF(daten);
}
data.close();
}
static void stream() throws IOException
{
int i;
FileOutputStream testoutput = new FileOutputStream("TEST2.DAT");
DataOutputStream testdata = new DataOutputStream(testoutput);
for (i=1; i<=10; i++)
{
String daten = "Stream-Test "+i+"\n";
testdata.writeUTF(daten);
}
testdata.close();
}
}
Den Zeilenvorschub am Ende der Strings habe ich nur beigefügt, damit man sie besser lesen kann, ohne ihn besteht das ganze Problem aber genauso. Testweise habe ich es auch mit sequenziellem Zugriff versucht, aber die Datei soll später mal wahlfrei behandelt werden können. Beim stream() werden die Sonderzeichen aber genauso eingefügt.
Wenn ich spaßeshalber writeChars() benutze werden die Strings zwar ohne Sondezeichen, dafür aber mit einem Leerzeichen vor jedem Char eingetragen.
Als Entwicklungsumgebung nutze ich JDK 1.6.0_3 mit JOE als Editor. Als Compiler und Interpreter sind die javac.exe und java.exe aus dem JDK/bin-Verzeichnis eingetragen.
Vielen Dank für jeden Tip, ich stehe momentan wie der Ochs vorm Berg