激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - JAVA中讀取文件(二進(jìn)制,字符)內(nèi)容的幾種方法總結(jié)

JAVA中讀取文件(二進(jìn)制,字符)內(nèi)容的幾種方法總結(jié)

2020-08-06 15:18強(qiáng)者用結(jié)果說(shuō)話 Java教程

本篇文章主要介紹了JAVA中讀取文件(二進(jìn)制,字符)內(nèi)容的方法總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

JAVA讀取文件內(nèi)容的方法有很多,比如按字節(jié)讀取文件內(nèi)容,按字符讀取文件內(nèi)容,按行讀取文件內(nèi)容,隨機(jī)讀取文件內(nèi)容等方法,本文就以上方法的具體實(shí)現(xiàn)給出代碼,需要的可以直接復(fù)制使用

?
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
178
179
180
181
182
183
184
public class ReadFromFile {
 /**
  * 以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件。
  */
 public static void readFileByBytes(String fileName) {
  File file = new File(fileName);
  InputStream in = null;
  try {
   System.out.println("以字節(jié)為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");
   // 一次讀一個(gè)字節(jié)
   in = new FileInputStream(file);
   int tempbyte;
   while ((tempbyte = in.read()) != -1) {
    System.out.write(tempbyte);
   }
   in.close();
  } catch (IOException e) {
   e.printStackTrace();
   return;
  }
  try {
   System.out.println("以字節(jié)為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");
   // 一次讀多個(gè)字節(jié)
   byte[] tempbytes = new byte[100];
   int byteread = 0;
   in = new FileInputStream(fileName);
   ReadFromFile.showAvailableBytes(in);
   // 讀入多個(gè)字節(jié)到字節(jié)數(shù)組中,byteread為一次讀入的字節(jié)數(shù)
   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) {
    }
   }
  }
 }
 
 /**
  * 以字符為單位讀取文件,常用于讀文本,數(shù)字等類型的文件
  */
 public static void readFileByChars(String fileName) {
  File file = new File(fileName);
  Reader reader = null;
  try {
   System.out.println("以字符為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");
   // 一次讀一個(gè)字符
   reader = new InputStreamReader(new FileInputStream(file));
   int tempchar;
   while ((tempchar = reader.read()) != -1) {
    // 對(duì)于windows下,\r\n這兩個(gè)字符在一起時(shí),表示一個(gè)換行。
    // 但如果這兩個(gè)字符分開(kāi)顯示時(shí),會(huì)換兩次行。
    // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會(huì)多出很多空行。
    if (((char) tempchar) != '\r') {
     System.out.print((char) tempchar);
    }
   }
   reader.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
  try {
   System.out.println("以字符為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");
   // 一次讀多個(gè)字符
   char[] tempchars = new char[30];
   int charread = 0;
   reader = new InputStreamReader(new FileInputStream(fileName));
   // 讀入多個(gè)字符到字符數(shù)組中,charread為一次讀取字符數(shù)
   while ((charread = reader.read(tempchars)) != -1) {
    // 同樣屏蔽掉\r不顯示
    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) {
    }
   }
  }
 }
 
 /**
  * 以行為單位讀取文件,常用于讀面向行的格式化文件
  */
 public static void readFileByLines(String fileName) {
  File file = new File(fileName);
  BufferedReader reader = null;
  try {
   System.out.println("以行為單位讀取文件內(nèi)容,一次讀一整行:");
   reader = new BufferedReader(new FileReader(file));
   String tempString = null;
   int line = 1;
   // 一次讀入一行,直到讀入null為文件結(jié)束
   while ((tempString = reader.readLine()) != null) {
    // 顯示行號(hào)
    System.out.println("line " + line + ": " + tempString);
    line++;
   }
   reader.close();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (reader != null) {
    try {
     reader.close();
    } catch (IOException e1) {
    }
   }
  }
 }
 
 /**
  * 隨機(jī)讀取文件內(nèi)容
  */
 public static void readFileByRandomAccess(String fileName) {
  RandomAccessFile randomFile = null;
  try {
   System.out.println("隨機(jī)讀取一段文件內(nèi)容:");
   // 打開(kāi)一個(gè)隨機(jī)訪問(wèn)文件流,按只讀方式
   randomFile = new RandomAccessFile(fileName, "r");
   // 文件長(zhǎng)度,字節(jié)數(shù)
   long fileLength = randomFile.length();
   // 讀文件的起始位置
   int beginIndex = (fileLength > 4) ? 4 : 0;
   // 將讀文件的開(kāi)始位置移到beginIndex位置。
   randomFile.seek(beginIndex);
   byte[] bytes = new byte[10];
   int byteread = 0;
   // 一次讀10個(gè)字節(jié),如果文件內(nèi)容不足10個(gè)字節(jié),則讀剩下的字節(jié)。
   // 將一次讀取的字節(jié)數(shù)賦給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) {
    }
   }
  }
 }
 
 /**
  * 顯示輸入流中還剩的字節(jié)數(shù)
  */
 private static void showAvailableBytes(InputStream in) {
  try {
   System.out.println("當(dāng)前字節(jié)輸入流中的字節(jié)數(shù)為:" + in.available());
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 
 public static void main(String[] args) {
  String fileName = "C:/temp/newTemp.txt";
  ReadFromFile.readFileByBytes(fileName);
  ReadFromFile.readFileByChars(fileName);
  ReadFromFile.readFileByLines(fileName);
  ReadFromFile.readFileByRandomAccess(fileName);
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://blog.csdn.net/zhao_liwei/article/details/51841342

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费a级片视频 | 九草在线视频 | 日韩精品一区不卡 | 精品国产91久久久久久浪潮蜜月 | 奶子吧naiziba.cc免费午夜片在线观看 | 在线成人免费观看 | 欧美极品欧美精品欧美视频 | 国产成年人网站 | 精品国产乱码一区二区 | 亚洲日本韩国在线观看 | 日韩精品中文字幕在线播放 | 一级毛片在线免费观看 | 国产性tv国产精品 | 日本在线不卡一区二区 | 色婷婷a v | 久久久国产一级片 | 九九热在线视频观看这里只有精品 | 玖玖视频精品 | 欧美国产精品久久 | 男人久久天堂 | 欧美性生交大片 | 久草在线视频网 | 欧美日韩在线播放 | 欧美四级在线观看 | 欧美女孩videos | 久久久成人999亚洲区美女 | 国产伊人色 | 免费看一区二区三区 | a视频在线免费观看 | 精品久久一区二区三区 | 亚洲网站免费看 | 天海翼四虎精品正在播放 | 国产高清自拍一区 | 一级片免费观看 | 色网站综合 | 国产精品久久在线观看 | 国产午夜精品一区二区三区四区 | 日本不卡一二三区 | 最新av网址在线观看 | 国产精品久久77777 | 国产一区在线免费 |