程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java 中對文件的讀寫操作之比較

Java 中對文件的讀寫操作之比較

編輯:關於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:// 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();
}
}

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved