一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java IO讀取文件的實例詳解

Java IO讀取文件的實例詳解

2020-12-05 16:55CSDN Java教程

這篇文章主要介紹了Java IO讀取文件的實例詳解的相關資料,主要介紹字符流和字節流的內容,需要的朋友可以參考下

Java中文件流的兩個主要方式就是字符流和字節流,如下圖:

Java IO讀取文件的實例詳解

具體的使用方法可以參考官方文檔,這里主要介紹四種常見的文件讀取方式

1.通過字節來讀取文件(常用于二進制文件:圖片、聲音、視頻等)
2.通過字符來讀取文件(常用于文本的讀取)
3.通過行來讀取文件(常用于面向行的格式化文本讀取)
4.隨機讀取文件(基于字節來讀取)

下面是對于這四種讀取方式的代碼,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
package com.ds.io;
 
//1、按字節讀取文件內容
//2、按字符讀取文件內容
//3、按行讀取文件內容
//4、隨機讀取文件內容
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
 
public class ReadFromFile {
  /**
   * 以字節為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。
   * @param fileName 文件的名
   */
  public static void readFileByBytes(String fileName) {
    File file = new File(fileName);
    InputStream in = null;
    try {
      System.out.println("以字節為單位讀取文件內容,一次讀多個字節:");
      // 一次讀多個字節
      byte[] tempbytes = new byte[100];
      int byteread = 0;
      in = new FileInputStream(fileName);
      ReadFromFile.showAvailableBytes(in);
      // 讀入多個字節到字節數組中,byteread為一次讀入的字節數
      while ((byteread = in.read(tempbytes)) != -1) {
        System.out.write(tempbytes, 0, byteread);
      }
    } catch (Exception e1) {
      e1.printStackTrace();
    } finally {
      if (in != null) {
        try {
          in.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 以字符為單位讀取文件,常用于讀文本,數字等類型的文件
   * @param fileName 文件名
   */
  public static void readFileByChars(String fileName) {
    File file = new File(fileName);
    Reader reader = null;
    try {
      System.out.println("以字符為單位讀取文件內容,一次讀多個字節:");
      // 一次讀多個字符
      char[] tempchars = new char[30];
      int charread = 0;
      reader = new InputStreamReader(new FileInputStream(fileName));
      // 讀入多個字符到字符數組中,charread為一次讀取字符數
      while ((charread = reader.read(tempchars)) != -1) {
        // 對于windows下,rn這兩個字符在一起時,表示一個換行。
        // 但如果這兩個字符分開顯示時,會換兩次行。
        // 因此,屏蔽掉r,或者屏蔽n。否則,將會多出很多空行。
        if ((charread == tempchars.length)
            && (tempchars[tempchars.length - 1] != 'r')) {
          System.out.print(tempchars);
        } else {
          for (int i = 0; i < charread; i++) {
            if (tempchars[i] == 'r') {
              continue;
            } else {
              System.out.print(tempchars[i]);
            }
          }
        }
      }
    } catch (Exception e1) {
      e1.printStackTrace();
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 以行為單位讀取文件,常用于讀面向行的格式化文件
   * @param fileName 文件名
   */
  public static void readFileByLines(String fileName) {
    File file = new File(fileName);
    BufferedReader reader = null;
    try {
      System.out.println("以行為單位讀取文件內容,一次讀一整行:");
      reader = new BufferedReader(new FileReader(file));
      String tempString = null;
      int line = 1;
      // 一次讀入一行,直到讀入null為文件結束
      while ((tempString = reader.readLine()) != null) {
        // 顯示行號
        System.out.println("line " + line + ": " + tempString);
        line++;
      }
      reader.close();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 隨機讀取文件內容
   * @param fileName 文件名
   */
  public static void readFileByRandomAccess(String fileName) {
    RandomAccessFile randomFile = null;
    try {
      System.out.println("隨機讀取一段文件內容:");
      // 打開一個隨機訪問文件流,按只讀方式
      randomFile = new RandomAccessFile(fileName, "r");
      // 文件長度,字節數
      long fileLength = randomFile.length();
      // 讀文件的起始位置
      int beginIndex = (fileLength > 4) ? 4 : 0;
      // 將讀文件的開始位置移到beginIndex位置。
      randomFile.seek(beginIndex);//以字節數來設置偏移量
      byte[] bytes = new byte[10];
      int byteread = 0;
      // 一次讀10個字節,如果文件內容不足10個字節,則讀剩下的字節。
      // 將一次讀取的字節數賦給byteread
      while ((byteread = randomFile.read(bytes)) != -1) {
        System.out.write(bytes, 0, byteread);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (randomFile != null) {
        try {
          randomFile.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 顯示輸入流中還剩的字節數
   * @param in
   */
  private static void showAvailableBytes(InputStream in) {
    try {
      System.out.println("當前字節輸入流中的字節數為:" + in.available());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  public static void main(String[] args) {
    String fileName = "C:\\Users\\Administrator\\Desktop\\客戶問題20160214.txt";
    ReadFromFile.readFileByBytes(fileName);
    ReadFromFile.readFileByChars(fileName);
    ReadFromFile.readFileByLines(fileName);
    ReadFromFile.readFileByRandomAccess(fileName);
  }
}

以上就是java IOl流的操作,如有疑問可以留言或者到本站社區交流,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/u013755987/article/details/50682783

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线观看www鲁啊鲁视频 | 婷婷伊人综合亚洲综合网 | 亚洲精品久久久久久婷婷 | 国产3级在线 | 清清草在线视频 | 2020韩国三级理论在线观看 | 美国女艳星brandilove | 日韩在线视频一区二区三区 | 免费片在线观看高清 | 久久日本片精品AAAAA国产 | www免费视频com | 青草视频在线观看免费视频 | 国产精品久久久久久影院 | 91寡妇天天综合久久影院 | 亚洲毛片免费看 | 99在线免费播放 | chinese国产老太性 | 九九免费精品视频 | 成人免费高清视频 | 四虎影院免费视频 | 久久不卡免费视频 | japanesexxxx在线播放 | 久久久精品免费免费直播 | 窝窝色资源站 | 精品久久99麻豆蜜桃666 | 人人爽人人看 | 精品区卡一卡2卡三免费 | 国产精品原创永久在线观看 | 麻豆找网服 | 情欲综合网 | 欧美四虎影院 | 精品综合久久久久久97超人 | 国产成人看片免费视频观看 | 亚洲电影不卡 | 猛吸奶水的老汉 | 午夜亚洲WWW湿好爽 午夜想想爱午夜剧场 | 亚洲四虎 | 国产精品片 | bt天堂午夜国产精品 | 欧美日韩精品免费一区二区三区 | 国产精品一区二区久久 |