WEB开发网
开发学院WEB开发Jsp Java 中对文件的读写操作之比较 阅读

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

 2001-02-16 16:28:55 来源:WEB开发网   
核心提示:java 中对文件的读写操作之比较作者:Jeru Liu日期:November 29,2000版本:1.0纪念在chinaasp积分过一百呕心原创一篇(Java 中对文件的读写操作之比较)拿分好难呀,555~~~,Java 中对文件的读写操作之比较,不知道那些几千分的老妖们是怎么灌水的,Java 对文件进行读写操作的例
java 中对文件的读写操作之比较

作者:Jeru Liu
日期:November 29,2000
版本:1.0

纪念在chinaasp积分过一百呕心原创一篇(Java 中对文件的读写操作之比较)拿分好难呀,555~~~,不知道那些几千分的老妖们是怎么灌水的。

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

Tags:Java 文件 读写

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接