最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中流的有關知識點詳解

 更新時間:2019年01月31日 12:01:56   作者:mumu1998  
今天小編就為大家分享一篇關于Java中流的有關知識點詳解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

什么是流?

流:程序和設備之間連接起來的一根用于數(shù)據傳輸?shù)墓艿溃骶褪且桓艿馈?/p>

流的分類:

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

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

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

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

               字節(jié)流         字符流
輸入流      InputStream      Reader
輸出流      OutputStream     Writer


文件流:

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

什么是字節(jié)流?

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的數(shù)據讀給程序,再將程序中的數(shù)據寫給fw的zhangsan文件夾中
     ch=fr.read();
}
  fw.flush();
  fr.close();
  fw.close();
}
}

字符流和字節(jié)流的區(qū)別:

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

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

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

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

緩沖流:Buffered

緩沖流就是帶有緩沖區(qū)的輸入輸出流

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

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

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

BufferedOutputStream :帶緩沖區(qū)的輸入流,允許一次向程序中讀入多個字節(jié)的數(shù)據

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

eg:
import java.awt.*;//帶緩沖區(qū)的字節(jié)流處理文件的速度要快于不帶緩沖區(qū)的字節(jié)流。
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輸出字節(jié)

printWriter 與 printStream的區(qū)別:

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

標準輸入輸出的重定向:

編程實現(xiàn)將鍵盤輸入的數(shù)據輸入到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();
}
}
}
}

總結

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

相關文章

  • Java多線程之火車售票系統(tǒng)

    Java多線程之火車售票系統(tǒng)

    這篇文章主要為大家詳細介紹了Java多線程之火車售票系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java中截取字符串方法的兩種用法

    Java中截取字符串方法的兩種用法

    這篇文章主要給大家介紹了關于Java中截取字符串方法的兩種用法,在Java開發(fā)中經常會涉及到對字符串進行截取操作,字符串截取是一種常見且重要的字符串處理技巧,可以根據實際需求獲取字符串的指定部分,需要的朋友可以參考下
    2023-09-09
  • Java如何將字符串String轉換為整型Int

    Java如何將字符串String轉換為整型Int

    這篇文章主要介紹了Java如何將字符串String轉換為整型Int,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • Java BeanPostProcessor與BeanFactoryPostProcessor基礎使用講解

    Java BeanPostProcessor與BeanFactoryPostProcessor基礎使用講解

    這篇文章主要介紹了Java BeanPostProcessor與BeanFactoryPostProcessor基礎使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-11-11
  • Java Junit單元測試實例詳解

    Java Junit單元測試實例詳解

    在本篇文章里小編給大家分享的是關于Java Junit單元測試的相關知識點內容,有興趣的朋友們學習下。
    2019-11-11
  • 基于SpringBoot和Dify實現(xiàn)流式響應輸出

    基于SpringBoot和Dify實現(xiàn)流式響應輸出

    這篇文章主要為大家詳細介紹了如何基于SpringBoot和Dify實現(xiàn)流式響應輸出效果,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2025-03-03
  • java多線程抓取鈴聲多多官網的鈴聲數(shù)據

    java多線程抓取鈴聲多多官網的鈴聲數(shù)據

    很容易就能發(fā)現(xiàn)通過改變 listId和page就能從服務器獲取鈴聲的json數(shù)據, 通過解析json數(shù)據, 可以看到都帶有{"hasmore":1,"curpage":1}這樣子的指示,通過判斷hasmore的值,決定是否進行下一頁的抓取。 但是通過上面這個鏈接返回的json中不帶有鈴聲的下載地址
    2016-04-04
  • 最簡單的spring boot打包docker鏡像的實現(xiàn)

    最簡單的spring boot打包docker鏡像的實現(xiàn)

    這篇文章主要介紹了最簡單的spring boot打包docker鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • java中設計模式(多例)的實例詳解

    java中設計模式(多例)的實例詳解

    這篇文章主要介紹了java中設計模式(多例)的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • spring boot 與kafka集成的示例代碼

    spring boot 與kafka集成的示例代碼

    這篇文章主要介紹了spring boot 與kafka集成的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04

最新評論

墨竹工卡县| 五大连池市| 华阴市| 印江| 抚远县| 泗水县| 特克斯县| 肇东市| 重庆市| 邻水| 绍兴县| 达拉特旗| 贞丰县| 通辽市| 大方县| 白山市| 武宁县| 新丰县| 盱眙县| 邹城市| 福州市| 涟水县| 安泽县| 阳曲县| 正安县| 湖北省| 珲春市| 吉水县| 大港区| 年辖:市辖区| 阿拉善左旗| 丹东市| 平昌县| 金乡县| 额敏县| 甘肃省| 米易县| 马山县| 灵璧县| 洛阳市| 乌海市|