分享
 
 
 

Java中对文件的读写操作之比较

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有