ゞ沉默是金ゞ
魚離不開水,但是沒有說不離開哪滴水.
BlogJava
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 98,comments - 104,trackbacks - 0
<
2012年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
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
1
2
3
4
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
Ant
Broker(1)
DB(8)
EJB(2)
eXtreme(7)
Hibernate
HTTP(6)
Java EE(8)
Java SE(31)
Jrules
Maven
Spring
Spring基礎(1)
Struts
webservice(2)
其他收集(6)
性能測試(1)
搜索引擎
面試相關
隨筆檔案
2012年12月 (1)
2012年11月 (1)
2012年8月 (16)
2012年7月 (6)
2012年6月 (11)
2011年3月 (1)
2010年12月 (1)
2010年11月 (2)
2010年8月 (1)
2010年7月 (3)
2010年5月 (1)
2010年1月 (1)
2009年12月 (3)
2009年11月 (2)
2009年8月 (1)
2009年6月 (4)
2009年5月 (1)
2009年4月 (1)
2009年3月 (6)
2009年2月 (3)
2008年12月 (4)
文章分類
EJB(1)
代碼收集
實用腳本
文章檔案
2012年6月 (2)
2012年1月 (1)
2011年8月 (1)
2009年11月 (1)
2009年3月 (1)
2009年2月 (2)
搜索
最新評論
1.?re: How to Create Client/Server Keystores using Java Keytool
Shawn?
--Freud
2.?re: HTTP/1.1 Cache-Control的理解
這是網頁代碼,還是IIS 代碼
--marmoglass
3.?re: How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClient
評論內容較長,點擊標題查看
--dashi99
4.?re: How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClient
評論內容較長,點擊標題查看
--shigangxing
5.?re: Part 12: java.util.concurrent : SingleThreadPool Example
評論內容較長,點擊標題查看
--NotNolyJava
閱讀排行榜
1.?HTTP/1.1 Cache-Control的理解(10099)
2.?MYSQL 連接數據庫命令收藏(8621)
3.?什么是RFC?(6613)
4.?can not be represented as java.sql.Timestamp(5953)
5.?How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClient(3644)
評論排行榜
1.?Java應用基礎:網友精選25個Java試題分享(18)
2.?踏實與成功(11)
3.?Eclipse中10個比較有用的快捷鍵組合(轉)(7)
4.?摘:一個Java程序員應該掌握的10項技能(6)
5.?Java獲取客戶端真實IP地址的兩種方法(5)
文件讀取實例
讀取文件實例
package
org.duke.java.util;
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
{
/** */
/**
* 以字節為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。
*/
public
static
void
readFileByBytes(String fileName)
{
File file
=
new
File(fileName);
InputStream in
=
null
;
try
{
System.out.println(
"
以字節為單位讀取文件內容,一次讀一個字節:
"
);
//
一次讀一個字節
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(
"
以字節為單位讀取文件內容,一次讀多個字節:
"
);
//
一次讀多個字節
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)
{
}
}
}
}
/** */
/**
* 以字符為單位讀取文件,常用于讀文本,數字等類型的文件
*/
public
static
void
readFileByChars(String fileName)
{
File file
=
new
File(fileName);
Reader reader
=
null
;
try
{
System.out.println(
"
以字符為單位讀取文件內容,一次讀一個字節:
"
);
//
一次讀一個字符
reader
=
new
InputStreamReader(
new
FileInputStream(file));
int
tempchar;
while
((tempchar
=
reader.read())
!=
-
1
)
{
//
對于windows下,\r\n這兩個字符在一起時,表示一個換行。
//
但如果這兩個字符分開顯示時,會換兩次行。
//
因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
if
(((
char
) tempchar)
!=
'
\r
'
)
{
System.out.print((
char
) tempchar);
}
}
reader.close();
}
catch
(Exception e)
{
e.printStackTrace();
}
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
)
{
//
同樣屏蔽掉\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(
"
以行為單位讀取文件內容,一次讀一整行:
"
);
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)
{
}
}
}
}
/** */
/**
* 隨機讀取文件內容
*/
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)
{
}
}
}
}
/** */
/**
* 顯示輸入流中還剩的字節數
*/
private
static
void
showAvailableBytes(InputStream in)
{
try
{
System.out.println(
"
當前字節輸入流中的字節數為:
"
+
in.available());
}
catch
(IOException e)
{
e.printStackTrace();
}
}
public
static
vo id
main(String[] args)
{
String fileName
=
"
C:/Shawn/test.txt
"
;
ReadFromFile.readFileByBytes(fileName);
ReadFromFile.readFileByChars(fileName);
ReadFromFile.readFileByLines(fileName);
ReadFromFile.readFileByRandomAccess(fileName);
}
}
posted on 2012-07-03 19:07
ゞ沉默是金ゞ
閱讀(797)
評論(0)
編輯
收藏
所屬分類:
Java SE
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
jvm學習筆記
ThreadPoolExecutor usage summary
Part 13: java.util.concurrent - Atomic Variables
Part 12: java.util.concurrent : SingleThreadPool Example
Part 11: java.util.concurrent - CachedThreadPool Example
Part 10: java.util.concurrent - ScheduledThreadPool Example
Part 9: java.util.concurrent : FixedThreadPool Example
Part 8: java.util.concurrent - "Executors" Factory Threads Pool
Part 7: java.util.concurrent - invokeAll via ExecutorService
Part 6: java.util.concurrent - Lock and Condition Object
Copyright ©2025 ゞ沉默是金ゞ Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
丰城市
|
大宁县
|
黄山市
|
安阳县
|
枣强县
|
仙桃市
|
屏东县
|
台中县
|
壶关县
|
乌兰察布市
|
彭阳县
|
遵义县
|
北碚区
|
扶余县
|
曲阳县
|
绿春县
|
邵阳县
|
台州市
|
哈密市
|
中牟县
|
科技
|
青川县
|
固镇县
|
陕西省
|
苏尼特左旗
|
东源县
|
侯马市
|
凉城县
|
建瓯市
|
泸定县
|
蓬溪县
|
墨竹工卡县
|
鹰潭市
|
昭觉县
|
邵阳县
|
营山县
|
远安县
|
宜阳县
|
通化市
|
宕昌县
|
黑水县
|