欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中流的有關(guān)知識(shí)點(diǎn)詳解

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

什么是流?

流:程序和設(shè)備之間連接起來(lái)的一根用于數(shù)據(jù)傳輸?shù)墓艿?,流就是一根管道?/p>

流的分類:

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

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

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

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

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


文件流:

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

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

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

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

字符流值可以完成文本文件的復(fù)制,卻無(wú)法完成視頻格式文件的復(fù)制。

因?yàn)樽止?jié)是不需要解碼和編碼的,將字節(jié)轉(zhuǎn)化為字符才存在解碼和編碼的問(wèn)題。

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

緩沖流:Buffered

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

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

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

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

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

BufferedWriter BufferedReader可以提高讀寫文本文件內(nèi)容的速度

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();
}
}

轉(zhuǎn)換流:

outputStreamWrite 流是把OutputStrean流轉(zhuǎn)換成Writer流的流

inputStreamReader 流是把inputStrean流轉(zhuǎn)換成Reader流的流

print流:

print流只有輸出,沒(méi)有輸入

PrintWriter 輸出字符    PrintStream輸出字節(jié)

printWriter 與 printStream的區(qū)別:

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

標(biāo)準(zhǔn)輸入輸出的重定向:

編程實(shí)現(xiàn)將鍵盤輸入的數(shù)據(jù)輸入到A文件中,如果輸入有誤,則把出錯(cuò)信息輸出到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("出錯(cuò)信息是:");
  e.printStackTrace();
}
}
}
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • java利用Calendar類打印日歷

    java利用Calendar類打印日歷

    這篇文章主要為大家詳細(xì)介紹了java利用Calendar類打印日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • java程序中指定某個(gè)瀏覽器打開(kāi)的實(shí)現(xiàn)方法

    java程序中指定某個(gè)瀏覽器打開(kāi)的實(shí)現(xiàn)方法

    最近工作中遇到一個(gè)需求,是要利用java打開(kāi)指定瀏覽器,整理后發(fā)現(xiàn)有四種解決的方法,所以想著分享出來(lái),下面這篇文章主要給大家介紹了java程序中指定某個(gè)瀏覽器打開(kāi)的實(shí)現(xiàn)方法,,需要的朋友可以參考下。
    2017-03-03
  • 揭秘SpringBoot!一分鐘教你實(shí)現(xiàn)配置的動(dòng)態(tài)神刷新

    揭秘SpringBoot!一分鐘教你實(shí)現(xiàn)配置的動(dòng)態(tài)神刷新

    在今天的指南中,我們將深入探索SpringBoot?動(dòng)態(tài)刷新的強(qiáng)大功能,讓你的應(yīng)用保持最新鮮的狀態(tài),想象一下,無(wú)需重啟,你的應(yīng)用就能實(shí)時(shí)更新配置,是不是很酷?跟我一起,讓我們揭開(kāi)這項(xiàng)技術(shù)如何讓開(kāi)發(fā)變得更加靈活和高效的秘密吧!
    2024-03-03
  • Java管道流實(shí)現(xiàn)線程間通信過(guò)程解析

    Java管道流實(shí)現(xiàn)線程間通信過(guò)程解析

    這篇文章主要介紹了Java管道流實(shí)現(xiàn)線程間通信過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • springboot使用JdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查功能

    springboot使用JdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查功能

    這篇文章主要介紹了springboot使用JdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查功能,需要的朋友可以參考下
    2017-12-12
  • Java實(shí)現(xiàn)計(jì)算圖中兩個(gè)頂點(diǎn)的所有路徑

    Java實(shí)現(xiàn)計(jì)算圖中兩個(gè)頂點(diǎn)的所有路徑

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)計(jì)算圖中兩個(gè)頂點(diǎn)的所有路徑功能,文中通過(guò)示例詳細(xì)講解了實(shí)現(xiàn)的方法,需要的可以參考一下
    2022-10-10
  • Java11中基于嵌套關(guān)系的訪問(wèn)控制優(yōu)化詳解

    Java11中基于嵌套關(guān)系的訪問(wèn)控制優(yōu)化詳解

    Java(和其他語(yǔ)言)通過(guò)內(nèi)部類支持嵌套類,要使其正常工作,需要編譯器執(zhí)行一些技巧,下面這篇文章主要給大家介紹了關(guān)于Java11中基于嵌套關(guān)系的訪問(wèn)控制優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

    springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Spring Cloud多個(gè)微服務(wù)之間調(diào)用代碼實(shí)例

    Spring Cloud多個(gè)微服務(wù)之間調(diào)用代碼實(shí)例

    這篇文章主要介紹了Spring Cloud多個(gè)微服務(wù)之間調(diào)用代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 關(guān)于Spring?Ioc和DI注解的問(wèn)題

    關(guān)于Spring?Ioc和DI注解的問(wèn)題

    這篇文章主要介紹了Spring?Ioc和DI注解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論