| |
| 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) |
|
|
| |
| 免责声明:该文章由网友发表,如果对您造成侵权,请联系站长。 |
|