JAVA檔案與資料流(1)
輸入流與輸出流
輸入流:將資料從檔案、標準輸入或其他外部輸入裝置中載入到記憶體。
輸出流:將記憶體中的資料儲存到檔案或輸出給輸出裝置。
1.InputStream和FileInputStream
1)InputStream
因為java.io.InputStream是抽象類,所以不能通過“new InputStream()”的方式構造例項物件。
但是他定義了輸入流的基本操作。
螢幕回顯舉例:
import java.io.InputStream;
import java.io.IOException;
public class Demo{
public static void echo(InputStream in){
try{
while(ture){
int i = in.read();
if (i == -1)
break;
char c = (char) i;
System.out.print(c);
}//while 迴圈結束
}catch(IOException e){
System.err.println("異常"+e);
e.printStackTrace;
}//try-catch 結構結束
System.out.println();
}//echo 結束
public static void main(String[] args){
echo(System.in);
}//main 結束
}
應用舉例:
輸入:asdf
輸出:asdf
System.in是java.in.InputStream型別的變數,對應於標準輸入,接受鍵盤輸入,可以將System.in作為引數傳給成員方法echo。
2)FileInputStream
FileInputStream是InputStream的子類,所以類FileInputStream的例項物件同樣可以呼叫相應的read成員方法從輸入流讀入位元組,並通過close城花園方法關閉輸入流。
讀取檔案舉例:
import java.io.FileInputStream
import java.io.IOException
public class Demo{
public static void main(String[] args){
try{
//檔名:test.txt
FileInputStream f=new FileInputStream("test.txt");
int b=f.read();
//讀取字元,直到空
for(i=0;b!=-1;i++){
System.out.print((char)b)
b=f.read();
}//for迴圈結束
//關閉檔案
f.close();
}catch(IOException e){
System.err.println("異常"+e);
e.printStackTrace();
}//try-catch結構結束
}//main結束
}
如果有text.txt那麼讀取檔案,如果不存在則顯示異常。(記得關閉檔案呀)
2.OutputStream和FileOutStream
1)OutputStream
java.io.OutputStream是用來處理輸出流的類,定義了輸出流的各種基本操作。比如輸出資料(write)和關閉輸出流等。
java.io.OutputStream是抽象類,不能通過 new OutputStream() 的方法構造例項物件。
public void write(byte[] b) throws IOException
將位元組陣列b的各個位元組寫寫入當前檔案中。
public void flush()throws IOException
目前計算機系統為了提高執行效率常常採用快取機制,呼叫write後常常不將資料直接寫入,而是暫時儲存在快取中,等資料累計到一定程度後才會真正往外輸出資料
呼叫write方法後常常呼叫flush之後馬上可以看到輸出結果
2)FileOutputStream
FileOutputStream是OutputStream的子類,可以通過下面構造方法建立例項物件。
public FileOutputStream(String name) throws FileNotFoundException
public FileOutputStream(String name,boolean append) throws FileNotFoundException
其中,name是指定檔名,append是指定寫入的方式。當append為true時,資料將被新增到檔案已有內容的末尾處;當引數為false時,檔案已有內容將被新寫入的內容覆蓋。
將字串寫入”test.txt”程式碼舉例:
import java.io.FileOutputStream;
import java.io.IOException;
public class OutputDemo{
public static void main(String[] args){
String s = "outputDemo";
//getBytes()是將一個String型別的字串中包含的字元轉換成byte型別並且存入一個byte[]陣列中
byte[] b = s.getBytes();
try{
FileOutputStream f = new FileOutputStream("test.txt");
f.write(b);
f.flush();
f.close();
}catch(IOException e){
System.err.println("異常"+e)
e.printStackTrace();
}//try-catch結束
}//mian結束
}
檔案操作有可能產生異常,一般需要try-catch結構處理相應的異常。
本來想一次寫完的,沒想到這麼多 ┌( ಠ_ಠ)┘
相關文章
- java檔案流Java
- 檔案與資料
- Java 字元流檔案讀寫Java字元
- 使用資料流的思想處理檔案
- [java IO流]之檔案拷貝Java
- [java IO流]之檔案複製Java
- Java™ 教程(資料流)Java
- MongoDB與MMAPV1相關的資料檔案簡述MongoDB
- java資料list寫入檔案Java
- 資料檔案合併與拆分
- 讀取檔案流並寫入檔案流
- 利用java建立檔案或者資料夾Java
- 一個Java檔案解決mybatis呼叫資料庫欄位與Java類檔案屬性不對應JavaMyBatis資料庫
- java 獲取資料夾大小、檔案大小、檔案個數Java
- YAML的Java實現——JYAML基本原理與示例(1)匯出資料為YAML格式檔案YAMLJava
- Java IO 流之拷貝(複製)檔案Java
- 分析Oracle資料庫日誌檔案(1)Oracle資料庫
- servlet接收xml資料流[java]ServletXMLJava
- Oracle 表空間與資料檔案Oracle
- 新增資料檔案與恢復cf
- Dart 語言標準流與檔案操作Dart
- nodeJs檔案系統(fs)與流(stream)NodeJS
- Java助力加固Excel檔案,保障資料安全JavaExcel
- 資料流-------C#檔案和byte[]互換問題C#
- 【流雲】利用DBMS_FILE_TRANSFER傳輸資料庫檔案資料庫
- TLP元素與PCIE資料流
- java IO流 對檔案操作的程式碼集合Java
- java 位元組流檔案複製方法總結Java
- Java I/O流 複製檔案速度對比Java
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- 分析Oracle資料庫日誌檔案(1)(轉)Oracle資料庫
- 分析Oracle資料庫日誌檔案(1) [轉]Oracle資料庫
- 同時丟失控制檔案與資料檔案的恢復
- ASM與檔案系統之間copy資料檔案--檔案系統到ASMASM
- Python資料夾與檔案的操作Python
- 資料檔案
- java 資料探勘 URL 內容流Java
- PostgreSQL資料檔案災難恢復-解析與資料dumpSQL