java I/O系統的類實在是太多了,這裡我們只學習一些基本的和常用的,相信能夠把握這些就可以解決我們以後的普通應用了
1.什麼是資料流 ?
資料流是指所有的資料通訊通道
有兩類流,InputStream and OutputStream,Java中每個串流的基本功能都依賴它們
InputStream 用於read,OutputStream 用於write, 讀和寫入都是相對與記憶體說的,讀就是從其他地方把資料拿進內存,寫就是把資料從記憶體推出去
這兩個都是抽象類,不能直接使用
2.InputStream 的方法有:
read() 從流讀入數據有3中方式:
int read() 一次讀取一個位元組
int read(byte[]) 讀多個位元組到陣列中
int read(byte[],int off,int len) 指定從陣列的哪裡開始,讀取多長
skip() 跳過流中若干位元組
available() 返回流中可用位元組數,但基於網路時無效,回傳0
markSupported() 判定是否支援標記與重設操作
mark(markSupported() 判定是否支援標記與重設操作
mark( ) 在流中標記一個位置,要與markSupported()連用
reset() 返回標記過的位置
close() 關閉流
3.OutputStream 的方法:
write(int) 寫一個位元組到流中
write (byte[]) 將數組中的內容寫入流中
write(byte[],int off,int len) 將數組中從off指定的位置開始len長度的資料寫到流中
close() 關閉流
flush() 將緩衝區中的資料強制輸出
4.File 類
File 可以表示檔案也可以表示目錄,File 類別控制所有硬碟操作
建構器:
File(File parent,String child)用父類別和 檔案名稱建構
File(String pathname) 用絕對路徑建構
File(String parent,String child) 使用父親目錄與檔案名稱建構
File(URI uri) 以遠端檔案建構
常用方法:
boolean createNewFile(); boolean exists();
例子:
//建立 test.txt 文件對象,判定是否存在,不存在就創建
import java.io.*;
public class CreateNewFile{java.io.*;
public class ]){
File f=new File("test.txt");
try{
if(!f.exists())
f.createNewFile();
else
System.out.PRintln("exists");
else
System.out.PRintln("exists") ;
}catch(Exception e){
e.printStackTrace();
}
}
}
boolean mkdir()/mkdirs()
boolean renameToFile(File /mkdirs() 的差異與 renameTo 的用法
import java.io.*;
public class CreateDir{
public static void main(String args[]){
public static void main(String args[]){
public static void main(String args[]){
File static File f1=new File("Dir");
File f2=new File("Top/Bottom");
File f3=new File("newTest.txt");
try{
f.renameTof3);
f1.mkdir();
f2.mkdirs();
}catch(Exception e){
e.printStackTrace();
}
}
}
String /getName()
範例://硬碟上沒有parent 目錄和 test.txt 文件,但我們仍然可以操作,因為我們創建了他們的對象,是對物件進行操作
import java.io.*;
public class Test{
public static void main(String args[]){
File f=new File("parent/test.txt");
File f1=new File("newTest.txt");
File f1=new File("newTest. .out.println(f.getParent());
System.out.println(f.getName());
System.out.println(f1.getPath());
System.out.println(f1.getAbsolutePath ());
}catch(Exception e){
e.printStackTrace();
}
}