1 輸入/輸出流
字節(jié)流 字符流
輸入流 InputStream Reader
輸出流 OutputStream Writer
2 字節(jié)流和處理流
------------------------------------------------------------------------
3 InputStream 向程序中輸入數(shù)據(jù)
InputStream---FileInputStream
InputStream---StringBufferInputStream
InputStream---ObjectInputStream
基本方法
-讀取一個(gè)字節(jié)并以整數(shù)的形式返回
-如果返回-1已到輸入流的末尾
int read() throws IOException
-讀取一系列字節(jié)并存儲(chǔ)到一個(gè)數(shù)組buffer
int read(byte[] buffer) throws IOException
-讀取length個(gè)字節(jié)并存到一個(gè)字節(jié)數(shù)組buffer
int read(byte[] buffer,int offset[數(shù)組的那個(gè)下標(biāo)開(kāi)始存],int lenght) throws IOException
-關(guān)閉流
void close() throws IOException
-------------------------------------------------------------------------------
4 outputStream 輸出數(shù)據(jù)
OutputStream---FileOutputStream
OutputStream---ObjectOutputStream
-向輸出流中寫一個(gè)字節(jié)數(shù)據(jù)
void write(int b)throws IOException
-將一個(gè)字節(jié)類型的數(shù)組中的數(shù)據(jù)寫入輸出流
void write(byte[] b)throws IOException
-將一個(gè)字節(jié)類型的數(shù)組中的從指定位置off開(kāi)始的len個(gè)字節(jié)寫入到輸出流
void write(byte[] b,int off,int len)throws IOException
-關(guān)閉流
void close()throws IOException
-將輸出流中緩沖的數(shù)據(jù)全部寫出到目的地(重要:先f(wàn)lush再close)
void flush() throws IOException
-----------------------------------------------------------------------------------
5 Reader/Writer
---------------------------------------------------
6 FileInputStream/OutputStream
long num=0;
try{
FileInputStream in=new FileInputStream("d:\\test.txt");
FileOutputStream out=new FileOutputStream("d:/test1.text");
while(int b=in.read()!=-1){
out.write(b);
}
in.close();
out.close();
}catch(){}
7 FileReader/FileWriter
FileReader fr=null;
FileWriter fw=null;
int c=0;
try{
fr=new FileReader ("d:\\test.java");
fw=new FileWriter ("d:/test1.java");
while((c=fr.read)!=-1){
System.out.print((char)c);
fw.write(c);
}
fr.close();
fw.close();
}
8 緩沖流
常用構(gòu)造方法
BufferedReader(Reader in)
BufferedReader(Reader in,int sz)
BufferedWreter(Writer out)
BufferedWreter(Writer out,int sz)
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in,int size)
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out,int size)
*BufferedReader提供了readLine方法用于讀取一行字符串
*BufferedWreter提供了newLine用于寫入一個(gè)行分隔符
*可以使用flush方法將輸出到緩沖流的數(shù)據(jù)在內(nèi)存中清空立刻寫入硬盤
try{
FileInputStream fis=new FileInputStream("d:\\share\\HelloWorld.java");
BufferedInputStream bis=new BufferedInputStream (fis);
bis.mark(100);從第100開(kāi)始讀
}
try{
BufferedWriter bw=new BufferedWriter (new FileWriter("d:\\test.txt"));
BufferedReader br=new BufferedReader(new FileReader("d:\\test.txt"));
String s=null;
for(int i=0;i<=100;i++){
s=String.valueOf(Math.random());
bw.write(s);
bw.newLine();//寫一個(gè)換行符
}
bw.flush();//清空緩存寫入文件
while((s=br.readLine())!=null){
System.out.println(s);
}
bw.close();
br.close();
}
9 轉(zhuǎn)換流
InputStreamReader/OutputStreamWriter
用于字節(jié)數(shù)據(jù)到字符數(shù)據(jù)之間的轉(zhuǎn)換
InputStreamReader 需要和 InputStream "套接"
OutputStreamWriter 需要和 OutputStream "套接"
InputStream isr=new InputStreamReader(System.in,"ISO8859-1");
try{
OutputStreamWriter osw=new OutputStreamWriter (new FileOutputStream("d:\\test.txt"));
osw.write("ssssssssssssssss");
osw.close();
osw=new OutputStreamWriter(new FileOutputStream("d:\\test.txt",true),"ISO8859-1");//true是指在原來(lái)的基礎(chǔ)上添加
osw.write("ddddddddddddddddddd");
osw.close();
}
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String s=br.readLine();
10 流據(jù)流,存儲(chǔ)和讀取java原始類型
DataInputStream(InputStream in)/DataOutputStream(OutputStream out)
boolean readBoolean()
double readDouble()
String readUTF()
11 PrintStream / PrintWriter
printStream ps=null;
try{
FileOutputStream fos=new FileOutStream("d:\\test.txt");
ps=new PrintStream(fos);
}
if(ps!=null){
System.setOut(ps);
}
int ln=0;
for(char c=0;c<=60000;c++){
System.out.print(c+" ");
if(ln++>=100){
System.out.println();
ln=0;
}
}
12 ObjectInputStream/ObjectOutputStream
對(duì)象讀寫必須序列化,transient關(guān)鍵字表示該必性不被序列化
class t implements Serializable{
int i=10;
transient int j=9;
double d=2.3;
}
T t=new T();
FileOutputStream fos=new FileOutputStream ();
ObjectOutputStream oos=new ObjectOutputStream (fos);
oos.writeObject(t);
oos.flush();
oos.close();
13 Externalizable接口
方法:
void readExternal(ObjectInput in)
void writeExternal(ObjectOutput out)
posted on 2009-11-29 21:18
junly 閱讀(207)
評(píng)論(0) 編輯 收藏 所屬分類:
java