91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中流的有關知識點詳解

發布時間:2020-09-17 03:50:59 來源:腳本之家 閱讀:175 作者:mumu1998 欄目:編程語言

什么是流?

流:程序和設備之間連接起來的一根用于數據傳輸的管道,流就是一根管道。

流的分類:

  • 四大基本抽象流(輸入流,輸出流,字符流,字節流)
  • 文件流
  • 緩沖流
  • 轉換流
  • 數據流     流一定是類,但類不一定是流
  • print流
  • object流

按數據流的方向不同可以分為輸入流和輸出流。

按處理數據單位不同可以分為字節流和字符流。(一個字符是兩個字節)

按功能不同可以分為節點(原始)流和處理(包裹)流。

               字節流         字符流
輸入流      InputStream      Reader
輸出流      OutputStream     Writer


文件流:

讀取一個文件內容并將其輸出到顯示器上,并統計讀取出來的字節的個數。字符串來表示操作系統的文件路徑時,我們可以使用\\和/兩種方式來作為文件夾的路徑分隔符。

什么是字節流?

FileInputStream       FileOutputStream

什么是字符流?

FileReader       FileWriter  

eg:
import java.awt.*;
public class test{
   public static void main(String[] args){
    FileReader fr=new FileRead("D:\\share\\test.java"); 
    FileWriter fw=new FileWrite("d:/zhangsan.haha");
   int ch;
       ch=fr.read();
 while(-1 != ch){
     fw.write(ch); //將test文件中fr的數據讀給程序,再將程序中的數據寫給fw的zhangsan文件夾中
     ch=fr.read();
}
  fw.flush();
  fr.close();
  fw.close();
}
}

字符流和字節流的區別:

字節流可以完成所有格式文件的賦值

字符流值可以完成文本文件的復制,卻無法完成視頻格式文件的復制。

因為字節是不需要解碼和編碼的,將字節轉化為字符才存在解碼和編碼的問題。

字節流可以從所有格式的設備中讀取數據,但字符流只能從文本格式的設備中讀寫數據。如果通過一個字節流把文本文件的內容輸出到顯示器上,當輸出漢字時就會出現亂碼。

緩沖流:Buffered

緩沖流就是帶有緩沖區的輸入輸出流

緩沖流可以顯著的減少我們對IO訪問的次數,保護我們的硬盤。

緩沖流本身就是處理流,必須依附于節點流,處理流是包裹在原始節點上的流,相當于包括在管道上的管道。

BufferedInputStream :帶緩沖的輸出流,允許一次向硬盤寫入多個字節的數據

BufferedOutputStream :帶緩沖區的輸入流,允許一次向程序中讀入多個字節的數據

BufferedWriter BufferedReader可以提高讀寫文本文件內容的速度

eg:
import java.awt.*;//帶緩沖區的字節流處理文件的速度要快于不帶緩沖區的字節流。
public class test{
   public static void main(String[] args){
   BufferedInputStream bis=new BufferedInputStream (new FileRead("D:\\share\\test.java")); 
    BufferedOutputStream bos= new BufferedOutputStream (new FileWrite("d:/zhangsan.haha"));
byte[] buf=new byte[1024];
   int len;
     len=bis.read(buf);
 while(-1 != len){
     bos.write(buf,0,len );
     len=bis.read(buf);
}
  bos.flush();
  bos.close();
  bis.close();
}
}

轉換流:

outputStreamWrite 流是把OutputStrean流轉換成Writer流的流

inputStreamReader 流是把inputStrean流轉換成Reader流的流

print流:

print流只有輸出,沒有輸入

PrintWriter 輸出字符    PrintStream輸出字節

printWriter 與 printStream的區別:

printWriter提供了PrintStream的所有打印方法,既可以封裝OutputStream,也能封裝Writer.而PrintStream只能封裝OutputStream類型的字節流。

標準輸入輸出的重定向:

編程實現將鍵盤輸入的數據輸入到A文件中,如果輸入有誤,則把出錯信息輸出到B文件中。

eg:
public class test{
    public static void main(String[] args){
   PrintStream psOut=null;
   PrintStream psError=null;
  Scanner sc=null;
     try{
     psOut=new PrintStream("d:/Out.txt");
     psError=new PrintStream("d:/error.txt");
  sc=new Scanner(System.in);
   int num;
   System.setOut(psOut);
  System.setErr(psError);
  while(true){
   num=sc.nextInt();
  System.out.println(num);
  }
}  
catch(Exception e){
  System.out.println("出錯信息是:");
  e.printStackTrace();
}
}
}
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安龙县| 丰顺县| 利川市| 丹凤县| 涪陵区| 略阳县| 南岸区| 徐闻县| 平凉市| 彰化市| 当雄县| 松潘县| 永嘉县| 谷城县| 平武县| 乐业县| 宁乡县| 孝感市| 镶黄旗| 石渠县| 永昌县| 马山县| 宽城| 利津县| 刚察县| 五河县| 洮南市| 罗田县| 明溪县| 新巴尔虎右旗| 青铜峡市| 丘北县| 澄城县| 许昌县| 七台河市| 额济纳旗| 应用必备| 贵州省| 乌兰浩特市| 博野县| 德格县|