Java by API/java.io/OutputStream
Содержание
extends OutputStream
<source lang="java">
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; public class Main {
public static void main(String[] argv) throws Exception { ByteBuffer buf = ByteBuffer.allocate(10); OutputStream os = new ByteBufferBackedOutputStream(buf); InputStream is = new ByteBufferBackedInputStream(buf); }
} class ByteBufferBackedInputStream extends InputStream{
ByteBuffer buf; ByteBufferBackedInputStream( ByteBuffer buf){ this.buf = buf; } public synchronized int read() throws IOException { if (!buf.hasRemaining()) { return -1; } return buf.get(); } public synchronized int read(byte[] bytes, int off, int len) throws IOException { len = Math.min(len, buf.remaining()); buf.get(bytes, off, len); return len; }
} class ByteBufferBackedOutputStream extends OutputStream{
ByteBuffer buf; ByteBufferBackedOutputStream( ByteBuffer buf){ this.buf = buf; } public synchronized void write(int b) throws IOException { buf.put((byte) b); } public synchronized void write(byte[] bytes, int off, int len) throws IOException { buf.put(bytes, off, len); }
}
</source>
OutputStream: close()
<source lang="java">
/*
* Output: * * * * */
import java.io.*; public class MainClass {
public static void main(String args[]) throws Exception { byte buf[] = new byte[]{66,67,68,69}; OutputStream f0 = new FileOutputStream("file1.txt"); OutputStream f1 = new FileOutputStream("file2.txt"); OutputStream f2 = new FileOutputStream("file3.txt"); for (int i = 0; i < buf.length; i++) { f0.write(buf[i]); } f0.close(); f1.write(buf); f1.close(); f2.write(buf, buf.length / 4, buf.length / 2); f2.close(); }
}
</source>
OutputStream: flush()
<source lang="java">
import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main {
public static void main(String args[]) throws IOException { int howMany = 20; // To avoid resizing the buffer, calculate the size of the // byte array in advance. ByteArrayOutputStream bout = new ByteArrayOutputStream(howMany * 4); DataOutputStream dout = new DataOutputStream(bout); for (int i = 0; i <= 20; i++) { dout.writeInt(i); } FileOutputStream fout = new FileOutputStream("fibonacci.dat"); try { bout.writeTo(fout); fout.flush(); } finally { fout.close(); } }
}
</source>
OutputStream: write(byte[] b, int off, int len)
<source lang="java">
/*
* Output: * * * * */
import java.io.*; public class MainClass {
public static void main(String args[]) throws Exception { byte buf[] = new byte[]{66,67,68,69}; OutputStream f0 = new FileOutputStream("file1.txt"); OutputStream f1 = new FileOutputStream("file2.txt"); OutputStream f2 = new FileOutputStream("file3.txt"); for (int i = 0; i < buf.length; i++) { f0.write(buf[i]); } f0.close(); f1.write(buf); f1.close(); f2.write(buf, buf.length / 4, buf.length / 2); f2.close(); }
}
</source>
OutputStream: write(byte byteValue)
<source lang="java">
/*
* Output: * * * * */
import java.io.*; public class MainClass {
public static void main(String args[]) throws Exception { byte buf[] = new byte[]{66,67,68,69}; OutputStream f0 = new FileOutputStream("file1.txt"); OutputStream f1 = new FileOutputStream("file2.txt"); OutputStream f2 = new FileOutputStream("file3.txt"); for (int i = 0; i < buf.length; i++) { f0.write(buf[i]); } f0.close(); f1.write(buf); f1.close(); f2.write(buf, buf.length / 4, buf.length / 2); f2.close(); }
}
</source>
OutputStream: write(byte[] values)
<source lang="java">
/*
* Output: * * * * */
import java.io.*; public class MainClass {
public static void main(String args[]) throws Exception { byte buf[] = new byte[]{66,67,68,69}; OutputStream f0 = new FileOutputStream("file1.txt"); OutputStream f1 = new FileOutputStream("file2.txt"); OutputStream f2 = new FileOutputStream("file3.txt"); for (int i = 0; i < buf.length; i++) { f0.write(buf[i]); } f0.close(); f1.write(buf); f1.close(); f2.write(buf, buf.length / 4, buf.length / 2); f2.close(); }
}
</source>