随笔-26  评论-13  文章-46  trackbacks-0
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  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: