Java by API/java.io/OutputStream — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 17:43, 31 мая 2010
Содержание
extends OutputStream
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);
}
}
OutputStream: close()
/*
* 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();
}
}
OutputStream: flush()
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();
}
}
}
OutputStream: write(byte[] b, int off, int len)
/*
* 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();
}
}
OutputStream: write(byte byteValue)
/*
* 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();
}
}
OutputStream: write(byte[] values)
/*
* 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();
}
}