Java by API/java.io/OutputStream

Материал из Java эксперт
Перейти к: навигация, поиск

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>