corda/classpath/java/io/FileOutputStream.java

48 lines
1.1 KiB
Java
Raw Normal View History

2007-07-25 00:34:45 +00:00
package java.io;
public class FileOutputStream extends OutputStream {
2007-07-27 02:39:53 +00:00
private int fd;
2007-07-25 00:34:45 +00:00
public FileOutputStream(FileDescriptor fd) {
this.fd = fd.value;
2007-07-25 00:34:45 +00:00
}
public FileOutputStream(String path) throws IOException {
fd = open(path);
}
public FileOutputStream(File file) throws IOException {
this(file.getPath());
}
private static native int open(String path) throws IOException;
public static native void write(int fd, int c) throws IOException;
2007-07-25 00:34:45 +00:00
public static native void write(int fd, byte[] b, int offset, int length)
2007-07-25 00:34:45 +00:00
throws IOException;
public static native void close(int fd) throws IOException;
public void write(int c) throws IOException {
write(fd, c);
}
public void write(byte[] b, int offset, int length) throws IOException {
if (b == null) {
throw new NullPointerException();
}
if (offset < 0 || offset + length > b.length) {
throw new ArrayIndexOutOfBoundsException();
}
write(fd, b, offset, length);
}
public void close() throws IOException {
close(fd);
2007-07-27 02:39:53 +00:00
fd = -1;
}
2007-07-25 00:34:45 +00:00
}