似水流年
Huhu'Blog
BlogJava
首页
新随笔
联系
聚合
管理
随笔-26 评论-13 文章-46 trackbacks-0
Java 中对文件的读写操作之比较
Java 中对文件的读写操作之比较
一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。
InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在
OutputStream 中我们有 FileOutputStream 这个对象。
用FileInputStream 来读取数据的常用方法是:
FileInputStream fstream = new FileInputStream(args[0]);
DataInputStream in = new DataInputStream(fstream);
用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。
完整代码见 Example 1。
用FileOutputStream 来写入数据的常用方法是:
FileOutputStream out out = new FileOutputStream("myfile.txt");
PrintStream p = new PrintStream( out );
用 p.println() 来写入数据,然后用 p.close() 关闭输入。
完整代码见 Example 2。
二.在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而
JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。
用FileReader 来读取文件的常用方法是:
FileReader fr = new FileReader("mydata.txt");
BufferedReader br = new BufferedReader(fr);
用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。
完整代码见 Example 3。
用 FileWriter 来写入文件的常用方法是:
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);
在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写
入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。
完整代码见 Example 4。
-------------------------------------------------------------- following is the source code of examples------------------------------------------------------
Example
1
:
//
FileInputDemo
//
Demonstrates FileInputStream and DataInputStream
import java.io.
*
;
class
FileInputDemo
{
public
static
void
main(String args[])
{
//
args.length is equivalent to argc in C
if
(args.length
==
1
)
{
try
{
//
Open the file that is the first command line parameter
FileInputStream fstream
=
new
FileInputStream(args[
0
]);
//
Convert our input stream to a DataInputStream
DataInputStream
in
=
new
DataInputStream(fstream);
//
Continue to read lines while there are still some left to read
while
(
in
.available()
!=
0
)
{
//
Print file line to screen
System.
out
.println (
in
.readLine());
}
in
.close();
}
catch
(Exception e)
{
System.err.println(
"
File input error
"
);
}
}
else
System.
out
.println(
"
Invalid parameters
"
);
}
}
Example 2:
//
FileOutputDemo
//
Demonstration of FileOutputStream and PrintStream classes
import java.io.
*
;
class
FileOutputDemo
{
public
static
void
main(String args[])
{
FileOutputStream
out
;
//
declare a file output object
PrintStream p;
//
declare a print stream object
try
{
//
connected to "myfile.txt"
out
=
new
FileOutputStream(
"
myfile.txt
"
);
//
Connect print stream to the output stream
p
=
new
PrintStream(
out
);
p.println (
"
This is written to a file
"
);
p.close();
}
catch
(Exception e)
{
System.err.println (
"
Error writing to file
"
);
}
}
}
Example 3:
//
FileReadTest.java
//
User FileReader in JDK1.1 to read a file
import java.io.
*
;
class
FileReadTest
{
public
static
void
main (String[] args)
{
FileReadTest t
=
new
FileReadTest();
t.readMyFile();
}
void
readMyFile()
{
String record
=
null
;
int
recCount
=
0
;
try
{
FileReader fr
=
new
FileReader(
"
mydata.txt
"
);
BufferedReader br
=
new
BufferedReader(fr);
record
=
new
String();
while
((record
=
br.readLine())
!=
null
)
{
recCount
++
;
System.
out
.println(recCount
+
"
:
"
+
record);
}
br.close();
fr.close();
}
catch
(IOException e)
{
System.
out
.println(
"
Uh oh, got an IOException error!
"
);
e.printStackTrace();
}
}
}
Example 4:
//
FileWriteTest.java
//
User FileWriter in JDK1.1 to writer a file
import java.io.
*
;
class
FileWriteTest
{
public
static
void
main (String[] args)
{
FileWriteTest t
=
new
FileWriteTest();
t.WriteMyFile();
}
void
WriteMyFile()
{
try
{
FileWriter fw
=
new
FileWriter(
"
mydata.txt
"
);
PrintWriter
out
=
new
PrintWriter(fw);
out
.print(“hi,
this
will be wirte into the file
!
”);
out
.close();
fw.close();
}
catch
(IOException e)
{
System.
out
.println(
"
Uh oh, got an IOException error!
"
);
e.printStackTrace();
}
}
}
posted on 2005-06-23 17:46
似水流年
阅读(897)
评论(2)
编辑
收藏
所属分类:
Java
评论:
#
re: Java 中对文件的读写操作之比较 2007-09-19 17:08 |
f
gffff
回复
更多评论
#
re: Java 中对文件的读写操作之比较
2007-09-19 17:08 |
f
gfb
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
<
2005年6月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
appfuse(2)
Java(1)
JS/HTML/CSS(6)
JSP/Servlet (13)
SQL(2)
Struts(1)
Windows
Xdoclet(1)
随笔档案
2006年4月 (1)
2005年11月 (3)
2005年10月 (1)
2005年6月 (21)
文章分类
Ant(1)
Java(9)
Jbuilder(1)
JS/HTML/CSS (2)
JSP/Servlet (11)
Oracle(10)
Others(4)
SQL(1)
Struts(2)
tomcat(1)
Windows(2)
XML(2)
文档(1)
文章档案
2006年5月 (1)
2006年4月 (15)
2006年2月 (2)
2006年1月 (1)
2005年12月 (1)
2005年11月 (2)
2005年9月 (2)
2005年8月 (3)
2005年7月 (3)
2005年6月 (16)
database
oracle 学习
Java
Hibernate中文手册
Jdon
Jsp
BEA dev2dev
CnJsp-中国jsp技术网站
IBM中国-xml教程
java开源大全
jsptags.com
JSP技术参考目录,尤其注重于标签库
J道:Java和J2EE解决之道
The Jakarta Project 大本营
w3schools
共创软件联盟
汉化问题
游戏开发资源网
opencms
opencms新闻问题
不能上传任何类型的文件
other
合气道视频
搜索
最新评论
1. re: Javascript回车换行
萨比得上
--大三
2. re: struts html:multibox标签(转载)
Good!
--何杨
3. re: 转义字符\的替换[未登录]
非常感谢 正是我需要的。。。
--飞雪
4. re: 让tomcat支持中文Url传递
URIEncoding="GBK"
最好还是用utf-8
默认情况下,浏览器采用UTF-8对链接进行编码
--fyxruben
5. re: Jstl验证用户登录及session控制[未登录]
sdfsdf
--sdfsd
阅读排行榜
1. 让tomcat支持中文Url传递(4640)
2. Jstl验证用户登录及session控制(3641)
3. Javascript回车换行(3294)
4. DisplayTag应用实践(2250)
5. Jstl的函数库(1837)
评论排行榜
1. Jstl验证用户登录及session控制(3)
2. 让tomcat支持中文Url传递(2)
3. Java 中对文件的读写操作之比较(2)
4. Jstl的函数库(1)
5. Javascript回车换行(1)