1. 程式人生 > >20180805-輸入輸出類

20180805-輸入輸出類

Java DataOutputStream類

下面的例子演示了DataInputStream和DataOutputStream的使用,該例從文字檔案test.txt中讀取5行,並轉換成大寫字母,最後儲存在另一個檔案test1.txt中。

 

import java.io.*;

public class Test{
public static void main(String args[])throws IOException{

DataInputStream d = new DataInputStream(new
FileInputStream("test.txt"));

DataOutputStream out = new DataOutputStream(new
FileOutputStream("test1.txt"));

String count;
while((count = d.readLine()) != null){
String u = count.toUpperCase();
System.out.println(u);
out.writeBytes(u + " ,");
}
d.close();
out.close();
}
}

 

 

Java File類

 

import java.io.File;

public class DirList{
public static void main(String[] args){
String dirname = "/java";
File f1 = new File(dirname);

if(f1.isDirectory()){
System.out.println("Directory of " + dirname);
String s[] = f1.list();

for(int i=0;i<s.length;i++){
File f = new File(dirname + "/" +s[i]);
if(f.isDirectory()){
System.out.println(s[i] + "is a directory");
}else{
System.out.println(s[i] + "is a file");
}
}



}else{
System.out.println(dirname + "is not a directory");
}
}
}

 

 

Java FileReader類

 

import java .io.*;

public class FileRead{
public static void main(String[] args) throws IOException{
File file = new File("Hello1.txt");

//建立檔案
file.createNewFile();
// creates a FileWriter Object
FileWriter writer = new FileWriter(file);

//向檔案寫入內容

writer.writer("This\n is\n an\n example\\n");
writer.flush();
writer.close();

//建立FileReader 物件

FileReader fr = new FileReader(file);
char [] a = new char[50];
fr.read(a); //讀取陣列中的內容

for(char c : a)
System.out.println(c); //一個一個列印字元
fr.close();
}
}

 

 

 

Java FileWriter類

 

例項

import java.io.*;
public class FileRead{
public static void main(String args[])throws IOException{
File file = new File("Hello1.txt");
// 建立檔案
file.createNewFile();
// creates a FileWriter Object
FileWriter writer = new FileWriter(file);
// 向檔案寫入內容
writer.write("This\n is\n an\n example\n");
writer.flush();
writer.close();
//建立 FileReader 物件
FileReader fr = new FileReader(file);
char [] a = new char[50];
fr.read(a); // 從陣列中讀取內容
for(char c : a)
System.out.print(c); // 一個個列印字元
fr.close();
}
}

 

 




Java DataOutputStream類

資料輸出流允許應用程式以與機器無關方式將Java基本資料型別寫到底層輸出流。

下面的構造方法用來建立資料輸出流物件。

DataOutputStream out = DataOutputStream(OutputStream out);

建立物件成功後,可以參照以下列表給出的方法,對流進行寫操作或者其他操作。

方法描述
public final void write(byte[] w, int off, int len)throws IOException
將指定位元組陣列中從偏移量 off 開始的 len 個位元組寫入此位元組陣列輸出流。

Public final int write(byte [] b)throws IOException
將指定的位元組寫入此位元組陣列輸出流。

public final void writeBooolean()throws IOException,
public final void writeByte()throws IOException,
public final void writeShort()throws IOException,
public final void writeInt()throws IOException
這些方法將指定的基本資料型別以位元組的方式寫入到輸出流。

Public void flush()throws IOException
重新整理此輸出流並強制寫出所有緩衝的輸出位元組。

public final void writeBytes(String s) throws IOException
將字串以位元組序列寫入到底層的輸出流,字串中每個字元都按順序寫入,並丟棄其高八位。


Java File類

Java檔案類以抽象的方式代表檔名和目錄路徑名。該類主要用於檔案和目錄的建立、檔案的查詢和檔案的刪除等。
File物件代表磁碟中實際存在的檔案和目錄。通過以下構造方法建立一個File物件。
通過給定的父抽象路徑名和子路徑名字串建立一個新的File例項。
File(File parent, String child);

通過將給定路徑名字串轉換成抽象路徑名來建立一個新 File 例項。
File(String pathname)

根據 parent 路徑名字串和 child 路徑名字串建立一個新 File 例項。
File(String parent, String child)

通過將給定的 file: URI 轉換成一個抽象路徑名來建立一個新的 File 例項。
File(URI uri)

建立File物件成功後,可以使用以下列表中的方法操作檔案。

方法描述
public String getName() 返回由此抽象路徑名錶示的檔案或目錄的名稱。

public String getParent() 返回此抽象路徑名的父路徑名的路徑名字串,如果此路徑名沒有指定父目錄,則返回 null。

public File getParentFile() 返回此抽象路徑名的父路徑名的抽象路徑名,如果此路徑名沒有指定父目錄,則返回 null。

public String getPath() 將此抽象路徑名轉換為一個路徑名字串。

public boolean isAbsolute() 測試此抽象路徑名是否為絕對路徑名。

public String getAbsolutePath() 返回抽象路徑名的絕對路徑名字串。

public boolean canRead() 測試應用程式是否可以讀取此抽象路徑名錶示的檔案。

public boolean canWrite() 測試應用程式是否可以修改此抽象路徑名錶示的檔案。

public boolean exists() 測試此抽象路徑名錶示的檔案或目錄是否存在。

public boolean isDirectory() 測試此抽象路徑名錶示的檔案是否是一個目錄。

public boolean isFile() 測試此抽象路徑名錶示的檔案是否是一個標準檔案。

public long lastModified() 返回此抽象路徑名錶示的檔案最後一次被修改的時間。

public long length() 返回由此抽象路徑名錶示的檔案的長度。

public boolean createNewFile() throws IOException 當且僅當不存在具有此抽象路徑名指定的名稱的檔案時,原子地建立由此抽象路徑名指定的一個新的空檔案。

public boolean delete() 刪除此抽象路徑名錶示的檔案或目錄。

public void deleteOnExit() 在虛擬機器終止時,請求刪除此抽象路徑名錶示的檔案或目錄。

public String[] list() 返回由此抽象路徑名所表示的目錄中的檔案和目錄的名稱所組成字串陣列。

public String[] list(FilenameFilter filter) 返回由包含在目錄中的檔案和目錄的名稱所組成的字串陣列,這一目錄是通過滿足指定過濾器的抽象路徑名來表示的。

public File[] listFiles() 返回一個抽象路徑名陣列,這些路徑名錶示此抽象路徑名所表示目錄中的檔案。

public File[] listFiles(FileFilter filter) 返回表示此抽象路徑名所表示目錄中的檔案和目錄的抽象路徑名陣列,這些路徑名滿足特定過濾器。

public boolean mkdir() 建立此抽象路徑名指定的目錄。

public boolean mkdirs() 建立此抽象路徑名指定的目錄,包括建立必需但不存在的父目錄。

public boolean renameTo(File dest) 重新命名此抽象路徑名錶示的檔案。

public boolean setLastModified(long time) 設定由此抽象路徑名所指定的檔案或目錄的最後一次修改時間。

public boolean setReadOnly() 標記此抽象路徑名指定的檔案或目錄,以便只可對其進行讀操作。

public static File createTempFile(String prefix, String suffix, File directory) throws IOException
在指定目錄中建立一個新的空檔案,使用給定的字首和字尾字串生成其名稱。

public static File createTempFile(String prefix, String suffix) throws IOException
在預設臨時檔案目錄中建立一個空檔案,使用給定字首和字尾生成其名稱。

public int compareTo(File pathname) 按字母順序比較兩個抽象路徑名。

public int compareTo(Object o) 按字母順序比較抽象路徑名與給定物件。

public boolean equals(Object obj) 測試此抽象路徑名與給定物件是否相等。

public String toString() 返回此抽象路徑名的路徑名字串。


Java FileReader類

FileReader類從InputStreamReader類繼承而來。該類按字元讀取流中資料。可以通過以下幾種構造方法建立需要的物件。

在給定從中讀取資料的 File 的情況下建立一個新 FileReader。
FileReader(File file)

在給定從中讀取資料的 FileDescriptor 的情況下建立一個新 FileReader。
FileReader(FileDescriptor fd)

在給定從中讀取資料的檔名的情況下建立一個新 FileReader。
FileReader(String fileName)

建立FIleReader物件成功後,可以參照以下列表裡的方法操作檔案。

方法描述
public int read() throws IOException 讀取單個字元,返回一個int型變數代表讀取到的字元

public int read(char [] c, int offset, int len) 讀取字元到c陣列,返回讀取到字元的個數



Java FileWriter類

FileWriter類從OutputStreamReader類繼承而來。該類按字元向流中寫入資料。可以通過以下幾種構造方法建立需要的物件。

在給出 File 物件的情況下構造一個 FileWriter 物件。
FileWriter(File file)

在給出 File 物件的情況下構造一個 FileWriter 物件。
FileWriter(File file, boolean append)

構造與某個檔案描述符相關聯的 FileWriter 物件。
FileWriter(FileDescriptor fd)

在給出檔名的情況下構造 FileWriter 物件,它具有指示是否掛起寫入資料的 boolean 值。
FileWriter(String fileName, boolean append)


建立FileWriter物件成功後,可以參照以下列表裡的方法操作檔案。

方法描述
public void write(int c) throws IOException
寫入單個字元c。

public void write(char [] c, int offset, int len)
寫入字元陣列中開始為offset長度為len的某一部分。

public void write(String s, int offset, int len)
寫入字串中開始為offset長度為len的某一部分。