corda/test/FileOutput.java
Joel Dice b4941cddbe close FileInputStream before deleting file in FileOutput test
Otherwise, Windows won't let us delete it.
2011-01-17 10:33:43 -07:00

48 lines
1.2 KiB
Java

import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.File;
import java.io.IOException;
public class FileOutput {
private static void expect(boolean v) {
if (! v) throw new RuntimeException();
}
private static void test(boolean appendFirst) throws IOException {
try {
FileOutputStream f = new FileOutputStream("test.txt", appendFirst);
f.write("Hello world!\n".getBytes());
f.close();
FileOutputStream f2 = new FileOutputStream("test.txt", true);
f2.write("Hello world again!".getBytes());
f2.close();
FileInputStream in = new FileInputStream("test.txt");
byte[] buffer = new byte[256];
int c;
int offset = 0;
while ((c = in.read(buffer, offset, buffer.length - offset)) != -1) {
offset += c;
}
in.close();
if (! "Hello world!\nHello world again!".equals
(new String(buffer, 0, offset)))
{
throw new RuntimeException();
}
} finally {
expect(new File("test.txt").delete());
}
}
public static void main(String[] args) throws IOException {
expect(new File("nonexistent-file").length() == 0);
test(false);
test(true);
}
}