27、IOパッケージの他のクラス
4783 ワード
一、操作基本データ型:DataInputStream DataOutputStream
例:
二、操作バイト配列:ByteArrayInputStream ByteArrayOutputStream
例:
三、操作文字配列:CharArrayReader CharArrayWriter下部はchar[]
操作文字列:StringReader StringWriterの下部にStringBufferを使用
操作はByteArrayInputStream ByteArrayOutputStreamと似ています
四、IO操作は必ずデータソースと目的を明確にしてから、具体的なストリームオブジェクトを選択して操作する.
/**
* 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操作は必ずデータソースと目的を明確にしてから、具体的なストリームオブジェクトを選択して操作する.