<%@ page contentType="text/html; charset=gb2312"%> Java 中对文件的读写操作之比较
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Java 中对文件的读写操作之比较
     发布者: 发布时间:2007-01-18
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。



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();
}
}

}
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
HTML结构化:实践DIV+CSS网页布局入门指南
走进JBoss (2)
走进JBoss (1)
论坛中验证码实现
国际电信联盟:无意接手互联网管理
Apache Nutch 0.8.1 发布
 
最近评论:
        
你曾悄悄的来过!
wow gold,wow gold,wow gold,ffxi gil max(6402)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(1136)
        
冰封的往事!
wow power leveling,wow gold,WoW Gold,wow gold max(5281)
        
飞舞的传奇!
传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(960)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号