<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    inputstream 讀取文件


    發現錯別字 2年前 提問
    回答
    1
    瀏覽
    2874
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    CISP-PTE CISM-WSE

    在java中,可以使用InputStream對文件進行讀取,就是字節流的輸入。InputStream讀取流有三個方法,分別為read(),read(byte[] b),read(byte[] b, int off, int len)。

    1.read

    這個方法是對這個流一個一個字節的讀,返回的int就是這個字節的int表示方式。

    以下是代碼片段,經過測試當eclipse的編碼為gbk時,轉化出的字符串不需經過重新編碼,如果eclipse的編碼為utf-8時則由byte轉成字符串需重新編成utf-8的。

    InputStream in = Test.class.getResourceAsStream("/tt.txt");
      byte[]tt=new byte[15];//測試用的事前知道有15個字節碼
      while(in.available()!=0){
    
       for(int i=0;i<15;i++){
        tt[i]=(byte)in.read();
       }
      }
      String ttttt=new String(tt,"utf-8");
      System.out.println(ttttt);
      in.close();

    2.read(byte[] b)

    這個方法是先規定一個數組長度,將這個流中的字節緩沖到數組b中,返回的這個數組中的字節個數,這個緩沖區沒有滿的話,則返回真實的字節個數,到未尾時都返回-1。

    in = Test.class.getResourceAsStream("/tt.txt");
      byte [] tt=new byte[1024];
      int b;
      while((b=in.read(tt))!=-1){
    
       System.out.println(b);
      String tzt=new String(tt,"utf-8");
    
    
      System.out.println(tzt);

    3.read(byte[] b, int off, int len)

    此方法其實就是多次調用了read()方法。

    InputStream in = Test.class.getResourceAsStream("/tt.txt");
      //System.out.println(in.available());//此方法是返回這個流中有多少個字節數,可以把數組長度定為這個
    
      byte[]tt=new byte[in.available()];
      int z;
      while((z=in.read(tt, 0, tt.length))!=-1){
       System.out.println(new String(tt,"utf-8"));
      }
    

    回答所涉及的環境:聯想天逸510S、Windows 10。

    2年前 / 評論
    亚洲 欧美 自拍 唯美 另类