Java連載99-帶有緩存區的字元輸入輸出流、System.in詳解

来源:https://www.cnblogs.com/ruigege0000/archive/2020/03/19/12521461.html
-Advertisement-
Play Games

一、Buffered 位元組方式 BufferedInputStream BufferedOutputStream 字元方式 BufferedReader BufferedWriter package com.bjpowernode.java_learning; import java.io.*; p ...


一、Buffered

位元組方式

BufferedInputStream

BufferedOutputStream

字元方式

BufferedReader

BufferedWriter

 

 

package com.bjpowernode.java_learning;

import java.io.*;

public class D99_1_BufferedReaderAndWriter {

  public static void main(String[] args) throws Exception{

    //創建一個帶有緩衝區的字元輸入流

    String address = "C:\\\\Users\\\\lenovo1\\\\Workspaces\\\\MyEclipse CI\\\\Java_learning\\\\src\\\\com\\\\bjpowernode\\\\java_learning\\\\temp1.txt";

    FileReader fr = new FileReader(address);//創建一個文件字元輸入流

    BufferedReader br = new BufferedReader(fr);//將文件字元輸入流包裝成帶有緩衝區的字元輸入流

    //根據流出現的位置,流又分為:包裝流或者處理流和節點流

    //FileReader fr是一個節點流

    //BufferedReader br是一個包裝流,或者處理流

    //上面的兩行代碼可以簡寫為如下一行

    //BufferedReader fr = new BufferedReader(new FileReader("C:\\\\Users\\\\lenovo1\\\\Workspaces\\\\MyEclipse CI\\\\Java_learning\\\\src\\\\com\\\\bjpowernode\\\\java_learning\\\\temp1.txt"));

   

    //開始讀

    String temp = null;

    while((temp = br.readLine()) != null) {//br.readline()方法讀取一行,但是行尾是不帶換行符的

      System.out.println(temp);//輸出一行

    }

    //關閉

    //註意:關閉的時候只需要關閉外層的包裝流即可(這裡有一個包裝者模式)

    fr.close();

   

   

    //創建一個帶有緩衝區的字元輸入流

    FileInputStream fis = new FileInputStream(address);

    //轉換流,位元組輸入流轉換為字元輸入流,為了就是能夠傳入BufferedReader中

    InputStreamReader isr = new InputStreamReader(fis);

   

    BufferedReader br2 = new BufferedReader(isr);

   

    //開始讀

    String temp2 = null;

    while((temp2=br2.readLine())!= null) {

      System.out.println(temp2);

    }

    //關閉,關閉最外層的流即可,(裝飾者模式)

  }

​

}

二、接受用戶鍵盤輸入

1.System.in是一個標準的輸入流,預設可以接受鍵盤的輸入

 

package com.bjpowernode.java_learning;

​

import java.io.*;

import java.util.*;

​

public class D99_2_AcceptUserInput {

  public static void main(String[] args) throws Exception{

    //以前的方式

    Scanner s = new Scanner(System.in);

    //程式執行到這裡停下來,等待用戶輸入

    String str = s.next();

    System.out.println(str);

    //next()是以空格為界限

    //接下來使用BufferedReader來接受用戶的輸入

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    //接受輸入(每次接受一行

    String str2 = br.readLine();

    System.out.println(str2);

   

    br.close();

   

  }

}

​三、源碼:

D99_1_BufferedReaderAndWriter.java

D99_2_AcceptUserInput.java

https://github.com/ruigege66/Java/blob/master/D99_1_BufferedReaderAndWriter.java

https://github.com/ruigege66/Java/blob/master/D99_2_AcceptUserInput.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • zepto中的DOM操作 插入操作 append appendTo 插在最後一個子元素後面 prepend prependTo 插在第一個子元素前面 after insertAfter 插在該元素後面,作為兄弟元素 before insertbefore 插在該元素後面,作為兄弟元素 <!DOCTY ...
  • vue前端項目中開發基於甘特圖的項目計劃模塊 參考鏈接 相比以前jquery的資料,vue的甘特圖插件少很多,中文資料更是少的可憐,以下兩個鏈接是在網上搜到相對還不錯的甘特圖插件 "https://www.cnblogs.com/liang715200/p/12029640.html" "https ...
  • [toc] 運用領域模型 交流與語言的使用 非原創,感謝《領域驅動設計》這本書 領域模型可成為軟體項目通用語言的核心。該模型是一組得自於項目人員頭腦中的概念,以及反映了領域深層含義的術語和關係。這些術語和相互關係提供了模型語言的語義,雖然語言是為領域量身定製的,但就技術開發而言,其依然足夠精確。正是 ...
  • [toc] 運用領域模型 消化知識 非原創,感謝《領域驅動設計》這本書 有效建模的要素 (1) 模型和實現的綁定。最初的原型雖然簡陋,但它在模型與實現之間建立了早期鏈接,而且在所有後續的迭代中我們一直在維護該鏈接。 (2) 建立了一種基於模型的語言。隨著項目的進展,雙方都能夠直接使用模型中的術語,並 ...
  • 設計模式中的原則和法則: 1、開閉原則: 開閉原則(Open Closed Principle,OCP)由勃蘭特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向對象軟體構造》(Object Oriented Software Construction)中提出:軟體實體應當對 ...
  • 1、最簡單的用戶系統 一個最簡單的用戶系統,只需要有用戶和身份驗證兩個模塊就夠了。如圖: 這裡提示一下:上層數據依賴下層數據。舉個慄子,就是身份驗證需要依賴用戶數據。 2、具有許可權管理的用戶系統 如果需要進行許可權管理的話,那麼就加上資源和角色模塊。同時,在身份認證之後需要按需進行鑒權。 資源和用戶都 ...
  • 本次過程僅供學習參考,請遵守相關法律法規。 首先我們分析網站:https://www.mzitu.com/all/ 不難發現,這個頁面上包含了大量的圖片鏈接,可以說是特別方便我們爬取圖片的,這是件好事。那麼我們繼續分析 這是第一頁的地址 這是第二頁的,所以我們爬取的時候只需要在鏈接後面增加“/num ...
  • OpenCV中的HAL方法調用流程分析 在OpenCV中有一些所謂HAL(Hardware Acceleration Layer)實現,看名字好像和硬體相關,其實也不盡然,可以理解為比常規的OCV實現更快的版本就好了。此文要做的就是要找到其實現或者切入流程,打通整個函數調用邏輯。本文將以 和`Gau ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...