java中的處理流






處理流

當你用節點流的時候你會發現,它會頻繁的訪問i/o流的次數,爲避免這樣而損耗我們的硬盤 這時我們就用處裏流。那到底什麼是處裏流呢?通俗的說就是包在別的流外面的流,類似於包在管道外面的管道。


public class mm{
public static void main(String[ ] args){
FileInputStream input =new FileInputStream("d:\\java\\input.java“);
BufferInputStream buffer=new BufferInputStream(input);
int c=0;
system.out.println(buffer.read()); //這裏讀取的是數目,如果要讀取內容的話強制轉換一下(char)buffer.reader()
buffer.mark(100); //從第100個開始讀取
for(int i=0;i<10 && (c=buffer.read())!=-1;i++){
system.out.print((char)c+""); //這裏強制轉換成char類型讀取裏面的內容
}
buffer.reset();//重置到第100開始讀取
for(int i=0;i<10 && (c=buffer.read())!=-1;i++){
system.out.print((char)c+""); 

}

}


public class nn{

public static void main (String[] args){
BufferWriter writer=new BufferWriter(new Writer(d:\\java\\nn.java));//new BufferWriter 裏面放的參數是一個writer對象
//這裏就類似與在new Writer的外面套了層BufferWriter流處理解決裏層接口只能一個一個字符的傳輸
BufferReader reader=new BufferReader(new Reader("d:\\java\\jj.java"));

int c=0;

String d=null;

for(int i=0;i<100;i++){

d=String.valueof(Math.random);//得到隨機數

writer.write(d);//將得到的隨機數寫入文件

writer.newLine; //換行.

}

writer.flush(); //對於輸出的緩衝流,寫出的數據會現在內存緩衝,使用flush可以將內存的數據立即寫出

}

while((d=reader.readLine())!=null){  //讀取每一行是一個String類型

system.out.print(d);

}

reader.close();

writer.close();

}
文中代碼省略了try-catch。

假設我們想寫入一段long類型的數字,但是你又感覺轉型特別麻煩。這裏我們就可以用到處理流裏面的Date--Stream,這個流裏面有writeDouble(double n)方法。
 

下面舉個簡單地例子方便我們理解:

public class dataTest{

public static void main (String[ ] args){

ByteArrayOutputStream byteOut=new ByteArrayOutputStream();

DataOutputStream dataOut=new DataOutputStream(byteOut);

dataOut.writeDouble(Math.random); //寫入一個double類型的隨機數

dataOut.writeBoolean(true);  //在最後一行寫入boolean類型的true

System.out.print(dataOut);

ByteArrayInputStream byteInput=new ByteArrayInputStream(byteOut.toByteArray());

DataInputStream dataInput=new DataInputStream(byteInput);

System.out.print(dataInput.readDouble());  //這裏遵循先進後出規則
 
System.out.print(dataInput.readBoolean());

dataInput.close();
dataOut.close(); 
}

}

注意上面的代碼一律忽略了try-catch。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章