mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
Closeable extends AutoCloseable; RandomAccessFile implements DataInput
This commit is contained in:
parent
38e66d80c8
commit
7013dbacfd
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
package java.io;
|
package java.io;
|
||||||
|
|
||||||
public interface Closeable {
|
public interface Closeable extends AutoCloseable {
|
||||||
void close()
|
void close()
|
||||||
throws IOException;
|
throws IOException;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,8 @@ import java.lang.IllegalArgumentException;
|
|||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.channels.FileChannel;
|
import java.nio.channels.FileChannel;
|
||||||
|
|
||||||
public class RandomAccessFile {
|
public class RandomAccessFile implements DataInput, Closeable {
|
||||||
|
|
||||||
private long peer;
|
private long peer;
|
||||||
private File file;
|
private File file;
|
||||||
private long position = 0;
|
private long position = 0;
|
||||||
@ -133,6 +134,85 @@ public class RandomAccessFile {
|
|||||||
private static native int readBytes(long peer, long position, byte[] buffer,
|
private static native int readBytes(long peer, long position, byte[] buffer,
|
||||||
int offset, int length);
|
int offset, int length);
|
||||||
|
|
||||||
|
public boolean readBoolean() throws IOException {
|
||||||
|
return readByte() != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int read() throws IOException {
|
||||||
|
try {
|
||||||
|
return readByte() & 0xff;
|
||||||
|
} catch (final EOFException e) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte readByte() throws IOException {
|
||||||
|
final byte[] buffer = new byte[1];
|
||||||
|
readFully(buffer);
|
||||||
|
return buffer[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public short readShort() throws IOException {
|
||||||
|
final byte[] buffer = new byte[2];
|
||||||
|
readFully(buffer);
|
||||||
|
return (short)((buffer[0] << 8) | buffer[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int readInt() throws IOException {
|
||||||
|
byte[] buf = new byte[4];
|
||||||
|
readFully(buf);
|
||||||
|
return ((buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float readFloat() throws IOException {
|
||||||
|
return Float.floatToIntBits(readInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
public double readDouble() throws IOException {
|
||||||
|
return Double.doubleToLongBits(readLong());
|
||||||
|
}
|
||||||
|
|
||||||
|
public long readLong() throws IOException {
|
||||||
|
return ((readInt() & 0xffffffffl) << 32) | (readInt() & 0xffffffffl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public char readChar() throws IOException {
|
||||||
|
return (char)readShort();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int readUnsignedByte() throws IOException {
|
||||||
|
return readByte() & 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int readUnsignedShort() throws IOException {
|
||||||
|
return readShort() & 0xffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String readUTF() throws IOException {
|
||||||
|
int length = readUnsignedShort();
|
||||||
|
byte[] bytes = new byte[length];
|
||||||
|
readFully(bytes);
|
||||||
|
return new String(bytes, "UTF-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
|
public String readLine() throws IOException {
|
||||||
|
int c = read();
|
||||||
|
if (c < 0) {
|
||||||
|
return null;
|
||||||
|
} else if (c == '\n') {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
StringBuilder builder = new StringBuilder();
|
||||||
|
for (;;) {
|
||||||
|
builder.append((char)c);
|
||||||
|
c = read();
|
||||||
|
if (c < 0 || c == '\n') {
|
||||||
|
return builder.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void write(int b) throws IOException {
|
public void write(int b) throws IOException {
|
||||||
int count = writeBytes(peer, position, new byte[] { (byte)b }, 0, 1);
|
int count = writeBytes(peer, position, new byte[] { (byte)b }, 0, 1);
|
||||||
if (count > 0) position += count;
|
if (count > 0) position += count;
|
||||||
|
Loading…
Reference in New Issue
Block a user