Also es ist wie beschrieben Sache der JRE/JVM, Betriebssytem und Hardware wie zB Festplatte.
Ich bin mir nichtmal sicher, ob obiger Code nicht einfach woanders eine neue Datei hinschreibt oder auch nur einmal -1 (int) geschrieben wird.
1111 1111 bekäme man auch einfacher durch i%2 == 0? (byte) 0 : (byte) -1
hin. Oder 0xFF oder -0b111_1111 (-127…).
Edit: (byte) ((i%2)-1)
Edit 2: (byte) (-(i%2))
*** Edit ***
Edit: @Mods: Darf ich eine wahrscheinlich funktionierende, auf FileOutputStream (nicht FileChannel) basierende Lösung posten, die wahrscheinlich alle Dateien eines Verzeichnis’ mehrmals überschreibt (und umbenennt), sd sie anschließend in der Papierkorb verschoben werden können, oder ist das nicht erlaubt?
*** Edit ***
so sähe das aus, falls falsch ,bitte löschen:
[spoiler]``` public static void rewriteFolder(File folder) throws IOException, InterruptedException {
if (!folder.isDirectory() || !folder.canWrite()) {
throw new IllegalArgumentException("Not a folder: " + folder);
}
File[] files = folder.listFiles();
Arrays.sort(files, new Comparator() {
@Override
public int compare(File o1, File o2) {
return -Long.valueOf(o1.lastModified()).compareTo(o2.lastModified());/zuerst neue Dateien/
}
});
for (File file : files) {
if (!file.isFile() || !file.canWrite()) {
continue;
}
if (JOptionPane.showConfirmDialog(null, "Soll
" + file + "
ÜBerschrieben werden?", “ÜBerschreiben”, JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION) {
System.out.println(“ok”);
int l = (int) file.length();
for (int i = 0; i < 10; i++) {
int b = -(i % 2);
System.out.println("b = " + b + " , (byte) b = " + (byte) b);
FileOutputStream fos = new FileOutputStream(file);
for (int j = 0; j < l; j++) {
fos.write(b);
}
fos.flush();
fos.close();
Thread.sleep(250L);
}
file.renameTo(new File(file.getParent() + File.separatorChar + System.currentTimeMillis() + “.txt”));
}
}
}```
run:
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
ok
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
b = 0 , (byte) b = 0
b = -1 , (byte) b = -1
BUILD SUCCESSFUL (total tim
[/spoiler]