ゞ沉默是金ゞ
魚(yú)離不開(kāi)水,但是沒(méi)有說(shuō)不離開(kāi)哪滴水.
BlogJava
首頁(yè)
新隨筆
新文章
聯(lián)系
聚合
管理
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
常用鏈接
我的隨筆
我的文章
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(3)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
Ant
Broker(1)
DB(8)
EJB(2)
eXtreme(7)
Hibernate
HTTP(6)
Java EE(8)
Java SE(31)
Jrules
Maven
Spring
Spring基礎(chǔ)(1)
Struts
webservice(2)
其他收集(6)
性能測(cè)試(1)
搜索引擎
面試相關(guān)
隨筆檔案
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)
代碼收集
實(shí)用腳本
文章檔案
2012年6月 (2)
2012年1月 (1)
2011年8月 (1)
2009年11月 (1)
2009年3月 (1)
2009年2月 (2)
搜索
最新評(píng)論
1.?re: How to Create Client/Server Keystores using Java Keytool
Shawn?
--Freud
2.?re: HTTP/1.1 Cache-Control的理解
這是網(wǎng)頁(yè)代碼,還是IIS 代碼
--marmoglass
3.?re: How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClient
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--dashi99
4.?re: How To Avoid javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated Problem Using Apache HttpClient
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--shigangxing
5.?re: Part 12: java.util.concurrent : SingleThreadPool Example
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--NotNolyJava
閱讀排行榜
1.?HTTP/1.1 Cache-Control的理解(10099)
2.?MYSQL 連接數(shù)據(jù)庫(kù)命令收藏(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)
評(píng)論排行榜
1.?Java應(yīng)用基礎(chǔ):網(wǎng)友精選25個(gè)Java試題分享(18)
2.?踏實(shí)與成功(11)
3.?Eclipse中10個(gè)比較有用的快捷鍵組合(轉(zhuǎn))(7)
4.?摘:一個(gè)Java程序員應(yīng)該掌握的10項(xiàng)技能(6)
5.?Java獲取客戶端真實(shí)IP地址的兩種方法(5)
文件讀取實(shí)例
讀取文件實(shí)例
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
{
/** */
/**
* 以字節(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
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)
評(píng)論(0)
編輯
收藏
所屬分類:
Java SE
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
jvm學(xué)習(xí)筆記
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
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
午夜dj免费在线观看
|
国产亚洲精品国产
|
亚洲国产精品xo在线观看
|
一区二区三区在线观看免费
|
日韩免费精品视频
|
亚洲AV无码一区二区三区DV
|
巨波霸乳在线永久免费视频
|
亚洲麻豆精品国偷自产在线91
|
亚洲黄色激情视频
|
99精品热线在线观看免费视频
|
亚洲无码精品浪潮
|
亚洲AV色无码乱码在线观看
|
67pao强力打造67194在线午夜亚洲
|
色爽黄1000部免费软件下载
|
在线观看免费高清视频
|
久久久久亚洲精品无码蜜桃
|
中国极品美軳免费观看
|
亚洲国产成人精品久久久国产成人一区二区三区综
|
亚洲一区二区三区免费观看
|
一个人免费日韩不卡视频
|
亚洲欧洲成人精品香蕉网
|
一级中文字幕免费乱码专区
|
国产美女做a免费视频软件
|
久久久久亚洲国产
|
亚洲国产精品免费观看
|
亚洲美女激情视频
|
午夜理伦剧场免费
|
亚洲国产精品福利片在线观看
|
国产免费内射又粗又爽密桃视频
|
高h视频在线免费观看
|
欧洲精品免费一区二区三区
|
亚洲一欧洲中文字幕在线
|
亚洲精品视频免费在线观看
|
老汉色老汉首页a亚洲
|
久久国产免费一区
|
亚洲s色大片在线观看
|
久久免费精彩视频
|
水蜜桃亚洲一二三四在线
|
久久青草免费91线频观看不卡
|
亚洲AV永久无码区成人网站
|
国产免费网站看v片在线
|