RealbigZ
Mitglied
Hallo!
Ich möchte eine Zeile aus einer Datei löschen. Folgender Quelltext hat sich nun daraus ergeben:
Soweit funktioniert das auch wie ich es mir gedacht habe, nur das die Zeichen nicht gelöscht, sondern mit NULL überschrieben werden. Aber egal was ich write() gebe, sämtliche Steuerzeichen habe ich schon ausprobiert. Die Zeichen werden immer nur überschrieben jedoch nicht gelöscht.
Ich möchte eine Zeile aus einer Datei löschen. Folgender Quelltext hat sich nun daraus ergeben:
Code:
public class Access
{
public static void main(String[] args) {
new Access();
}
private static String file="data.txt";
private static RandomAccessFile wData=null;
public Access()
{
save("a123456789");
save("b123456789");
save("c123456789");
save("d123456789");
save("e123456789");
delLine(1);
}
public static void save(String data)
{
try
{
wData=new RandomAccessFile(file,"rw");
if(wData!=null)
{
try
{
wData.seek(wData.length());
wData.writeBytes(data+"\n");
}
catch (IOException e)
{
e.printStackTrace();
}
}
else System.out.println("Error: Öffnen des Streams fehlgeschlagen.");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
finally
{
try { wData.close(); }
catch (IOException e) { e.printStackTrace(); }
}
}
public static void delLine(int index)
{
int strLen=11;
try
{
wData=new RandomAccessFile(file,"rw");
if(wData!=null)
{
try
{
wData.seek((index*strLen));
for(int i=0;i<strLen;i++)
{
wData.write('\0');
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
else System.out.println("Error: Öffnen des Streams fehlgeschlagen.");
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
finally
{
try { wData.close(); }
catch (IOException e) { e.printStackTrace(); }
}
}
}
Soweit funktioniert das auch wie ich es mir gedacht habe, nur das die Zeichen nicht gelöscht, sondern mit NULL überschrieben werden. Aber egal was ich write() gebe, sämtliche Steuerzeichen habe ich schon ausprobiert. Die Zeichen werden immer nur überschrieben jedoch nicht gelöscht.