java文件读写

 

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

Java代码 复制代码
  1. // FileInputDemo   
  2. // Demonstrates FileInputStream and DataInputStream   
  3. import java.io.*;   
  4.   
  5. class FileInputDemo {   
  6.   public static void main(String args[]) {   
  7.     // args.length is equivalent to argc in C   
  8.     if (args.length == 1) {   
  9.       try {   
  10.         // Open the file that is the first command line parameter   
  11.         FileInputStream fstream = new FileInputStream(args[0]);   
  12.         // Convert our input stream to a DataInputStream   
  13.         DataInputStream in = new DataInputStream(fstream);   
  14.         // Continue to read lines while there are still some left to read   
  15.         while (in.available() !=0) {   
  16.           // Print file line to screen   
  17.           System.out.println (in.readLine());   
  18.         }   
  19.         in.close();   
  20.       } catch (Exception e) {   
  21.         System.err.println("File input error");   
  22.       }   
  23.     }   
  24.     else  
  25.       System.out.println("Invalid parameters");   
  26.   }   
  27. }  
// 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:

Java代码 复制代码
  1. // FileOutputDemo   
  2. // Demonstration of FileOutputStream and PrintStream classes   
  3. import java.io.*;   
  4.   
  5. class FileOutputDemo    
  6. {       
  7.   public static void main(String args[])  {                 
  8.   FileOutputStream out; // declare a file output object   
  9.     PrintStream p; // declare a print stream object   
  10.   
  11. try {   
  12.   // connected to "myfile.txt"   
  13.       out = new FileOutputStream("myfile.txt");   
  14.       // Connect print stream to the output stream   
  15.       p = new PrintStream( out );   
  16.       p.println ("This is written to a file");   
  17.       p.close();   
  18.     } catch (Exception e) {   
  19.       System.err.println ("Error writing to file");   
  20.     }   
  21.   }   
  22. }  
// 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:

Java代码 复制代码
  1. // FileReadTest.java   
  2. // User FileReader in JDK1.1 to read a file    
  3. import java.io.*;   
  4.   
  5. class FileReadTest {         
  6.   public static void main (String[] args) {   
  7.     FileReadTest t = new FileReadTest();   
  8.     t.readMyFile();   
  9. }    
  10.        
  11.   void readMyFile() {    
  12.     String record = null;   
  13.     int recCount = 0;    
  14.     try {    
  15. FileReader fr = new FileReader("mydata.txt");   
  16.        BufferedReader br = new BufferedReader(fr);   
  17.        record = new String();   
  18.        while ((record = br.readLine()) != null) {   
  19.          recCount++;   
  20.          System.out.println(recCount + ": " + record);    
  21. }   
  22. br.close();   
  23. fr.close();    
  24.      } catch (IOException e) {    
  25.          System.out.println("Uh oh, got an IOException error!");   
  26.          e.printStackTrace();   
  27.      }   
  28. }    
  29.      
  30. }      
// 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:

Java代码 复制代码
  1. // FileWriteTest.java   
  2. // User FileWriter in JDK1.1 to writer a file    
  3. import java.io.*;   
  4.   
  5. class FileWriteTest {         
  6.   public static void main (String[] args) {   
  7.     FileWriteTest t = new FileWriteTest();   
  8.     t.WriteMyFile();   
  9. }    
  10.        
  11.   void WriteMyFile() {    
  12.     try {    
  13. FileWriter fw = new FileWriter("mydata.txt");   
  14. PrintWriter out = new PrintWriter(fw);       
  15. out.print(“hi,this will be wirte into the file!”);      
  16. out.close();   
  17. fw.close();   
  18.      } catch (IOException e) {    
  19.          System.out.println("Uh oh, got an IOException error!");   
  20.          e.printStackTrace();   
  21.      }   
  22. }    
  23.      
  24. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值