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

溫馨提示×

溫馨提示×

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

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

如何使用BufferedReader讀取TXT文件中數值并輸出最大值

發布時間:2021-12-10 09:02:03 來源:億速云 閱讀:217 作者:iii 欄目:開發技術

本篇內容主要講解“如何使用BufferedReader讀取TXT文件中數值并輸出最大值”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用BufferedReader讀取TXT文件中數值并輸出最大值”吧!

    BufferedReader讀取TXT文件中數值輸出最大值

    1.題目

    txt文件中數字的讀取,并輸出最大值

    如何使用BufferedReader讀取TXT文件中數值并輸出最大值

    輸出最大值92

    如何使用BufferedReader讀取TXT文件中數值并輸出最大值

    2.BufferedReader 介紹

    • BufferedReader 是緩沖字符輸入流。它繼承于Reader。

    • BufferedReader 的作用是為其他字符輸入流添加一些緩沖功能。

    BufferedReader 函數列表:

    BufferedReader(Reader in)
    BufferedReader(Reader in, int size)
     
    void     close()
    void     mark(int markLimit)
    boolean  markSupported()
    int      read()
    int      read(char[] buffer, int offset, int length)
    String   readLine()
    boolean  ready()
    void     reset()
    long     skip(long charCount)

    3.思路

    • 打開文件

    • 使用BufferedReader讀取

    • readLine讀取每一行,保存到新個 String 變量中

    • 將String中的數字,轉換成數組

    • 從數組中比較出最大值

    4.問題

    BufferedReader的readLine()方法是阻塞式的, 如果到達流末尾, 就返回null, 但如果client的socket末經關閉就銷毀, 則會產生IO異常.,使用后要記得close

    使用readLine依次讀取各行,處理后輸出,如果用以下方法,則會出現除第一行外行首字符丟失,原因就在于br.read() != -1 這判斷條件上。 因為在執行這個條件的時候其實它已經讀取了一個字符了,然而在這里并沒有對讀取出來的這個字符做處理,所以會出現少一個字符,如果你這里寫的是while(br.readLine()!=null)會出現隔一行少一行!

    String str  = null;
    br=new BufferedReader(new FileReader(fileName));
    while(br.read()!=-1){
      str = buf.readLine()); 
    }

    java.lang.NumberFormatException: For input string: " "這里的Integer.valueOf(s2[i]);參數里開頭和結尾不能含有空格

       for(int i=0;i<s2.length;i++){
    	  a[i]= Integer.valueOf(s2[i]);
        }

    5.解決

    直接上代碼了。。。。。

    package test; 
    import java.io.*; 
    public class testtwo {
    		public static void main(String[] args) throws IOException {
    	       try {
    	    	   //1.打開文件
    	    	   FileReader fr=new FileReader("test.txt");
    	    	   //2.使用BufferedReader讀取
    	    	   BufferedReader br=new BufferedReader(fr);
    	    	   //保存數據
    	    	   String message = "";  
    	    	   String line = null;  
    	    	   while((line = br.readLine()) != null) {
    	    		   message = message+" "+line;  
    	    	   }
    	    	   //去掉兩端空格
    	    	   message = message.trim();
                       //轉化成數組
    	    	   String s2[]=message.split(" ");
    	    	   int a[]=new int[message.length()];
    	    	   for(int i=0;i<s2.length;i++){
    	    		    a[i]= Integer.valueOf(s2[i]);
    	    	   }
    	    	   //比較最大值
    	    	   int max=a[0];
    	    	   for(int j=1;j<a.length;j++){
    	    		   if(max<a[j]){
    	    			   max=a[j];
    	    		   }
    	    	   }
    	    	   System.out.println("最大值為"+max);
    	    	   //4.關閉文件
    		       br.close();
    	    	   fr.close();	    	   
    	       } catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} 
    	 } 
    }

    6.小結一下

    • 使用BufferedReader中readLine一行一行的讀取txt中數字

    • 使用line將要丟失的一行,先保存起來,就不會丟失了

    • String.trim()將數據兩端的空格給去掉了

    使用BufferedReader讀取文件的好處

    • 沒有緩沖區時,每次讀取操作都會導致一次文件讀取操作(就是告訴操作系統內核我要讀這個文件的這個部分,麻煩你幫我把它取過來)。

    • 有緩沖區時,會一次性讀取很多數據,然后按要求分次交給上層調用者。

    讀取塊大小通常是按最適合硬件的大小來讀的,因為對于硬件來說,一次讀取一塊連續數據(比如 1K)和一次讀取一個字節需要的時間幾乎是一樣的(都是一次讀操作,只是最終提交的數據量有差異)。帶緩沖的 I/O 和不帶緩沖的相比效率差異是非常顯著的,你可以自行寫程序測試。

    說到java reader緩存,其實有兩層緩存:

    OS緩存,把磁盤數據 讀入內存,通過read ahead, io scheduler等減少磁盤讀取次數.

    App緩存,做緩存/預讀,即BufferredReader的角色.

    BufferredReader的作用:我的理解

    1、減少System Call次數

    2、減少磁盤讀取次數

    到此,相信大家對“如何使用BufferedReader讀取TXT文件中數值并輸出最大值”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

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

    AI

    合水县| 通州区| 郓城县| 建宁县| 措勤县| 黄陵县| 金阳县| 乳山市| 宁阳县| 墨玉县| 尼玛县| 三明市| 文化| 连江县| 佛坪县| 玉环县| 靖西县| 大田县| 柞水县| 洛川县| 扶风县| 会宁县| 上虞市| 灵璧县| 赣榆县| 寿阳县| 曲沃县| 祁连县| 青川县| 樟树市| 大田县| 灌云县| 鹤庆县| 叙永县| 成安县| 阳城县| 平远县| 武乡县| 中牟县| 石阡县| 津南区|