27、IOパッケージの他のクラス


一、操作基本データ型:DataInputStream DataOutputStream
 
 
/**
 *                    Java           。
 *  ,                  。 
 */
public class DataOutputStream extends FilterOutputStream implements DataOutput
{
	//           ,            
	public DataOutputStream(OutputStream out){}


	//                。   writeChar               
	public final void writeChars(String s)
                      throws IOException{}

	writeByte(int v) writeChar(int v) writeDouble(double v)....
}

 
/**
 *                               Java     
 *  ,                  。 
 */
public class DataInputStream extends FilterInputStream implements DataInput
{
	//        InputStream      DataInputStream
	public DataInputStream(InputStream in){}


	readByte() readChar() readDouble()....
}

 
 
例:
 
import java.io.*;

public class DataStreamDemo {

	public static void main(String[] args) throws IOException {
		DataOutputStream dos = new DataOutputStream(new FileOutputStream("e:/mm.txt"));
		DataInputStream dis = new DataInputStream(new FileInputStream("e:/mm.txt"));
		writeData(dos);
		readData(dis);
	}
	public static void writeData(DataOutputStream dos) throws IOException
	{
		dos.writeInt(25);
		dos.writeBoolean(true);
		dos.writeDouble(5);
		dos.writeByte(2);
		dos.close();
	}
	public static void readData(DataInputStream dis) throws IOException
	{
		int a = dis.readInt();
		boolean b = dis.readBoolean();
		double c = dis.readDouble();
		byte d = dis.readByte();
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		dis.close();
	}
}

 
 
二、操作バイト配列:ByteArrayInputStream ByteArrayOutputStream
 
/**
 *          ,           byte   。
 *                  。    toByteArray()   toString()     。 
 *   ByteArrayOutputStream   。                 ,        IOException。 
 */
public class ByteArrayOutputStream extends OutputStream
{
	//       byte      。          32   ,          
	public ByteArrayOutputStream(){}

	//       byte      ,             (      )。 
	public ByteArrayOutputStream(int size){}

	//   byte        count       ,                  。               ,          。 
	public void reset(){}

	//             。
	public int size(){}

	//         byte   。             ,                  
	public byte[] toByteArray(){}

	//          ,                  
	public String toString(){}

	//      charsetName,                  
	public String toString(String charsetName)
                throws UnsupportedEncodingException{}

	public void write(int b){}
	public void write(byte[] b,
                  int off,
                  int len){}

	//   byte                       
	public void writeTo(OutputStream out)
             throws IOException{}
}

 
/**
 *ByteArrayInputStream          ,              。
 *        read             
 *   ByteArrayInputStream   。                 ,        IOException
 */
public class ByteArrayInputStream extends InputStream
{
	//     ByteArrayInputStream,   buf         
	public ByteArrayInputStream(byte[] buf){}

	//   ByteArrayInputStream,   buf         
	public ByteArrayInputStream(byte[] buf,
                            int offset,
                            int length){}

	//              
	public void reset(){}
}

例:
import java.io.*;

public class ByteArrayStreamDemo {

	public static void main(String[] args) {
		//   
		ByteArrayInputStream bis = new ByteArrayInputStream("dsljfa".getBytes());
		
		//    
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		
		int num = 0;
		while((num=bis.read())!=-1)
		{
			bos.write(num);
		}
		String str = bos.toString();
		System.out.println(str);
	}
}

 
三、操作文字配列:CharArrayReader CharArrayWriter下部はchar[]
操作文字列:StringReader StringWriterの下部にStringBufferを使用
操作はByteArrayInputStream ByteArrayOutputStreamと似ています
 
四、IO操作は必ずデータソースと目的を明確にしてから、具体的なストリームオブジェクトを選択して操作する.