Java進階核心之OutputStream流
- OutputStream是輸出位元組流的父類,它是一個抽象類
void write(int b)
講解:將指定的位元組寫入輸出流
void write(byte[] b)throws IOException
講解:將b.length個位元組的byte陣列寫入當前輸出流
void flush() throws IOException
講解: write是寫到緩沖區中,可以認為是記憶體中,當緩沖區滿時系統會?自動將緩沖區的內容寫入檔案,但是一般還有一部分有可能會留在記憶體這個緩沖區中, 所以需要呼叫flush慷訓沖區資料,
void close() throws IOException
講解:關閉輸入流并釋放與該流關聯的系統資源
- 常見子類
- FileOutputStream
- 抽象類OutputStream用來具體實作類的創建物件, 檔案位元組輸出流, 對檔案資料以位元組的形式進行行輸出的操作
- 建構式
- FileOutputStream
//傳入輸出的檔案地址
public FileOutputStream(String name)
//傳入目標輸出的檔案物件
public FileOutputStream(File file)
//傳入目標輸出的檔案物件, 是否可以追加內容
public FileOutputStream(File file, boolean append)
eg:
package domee.chapter10_3;
import domee.chapter6_6.Vehicle;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
String dir = "C:\\Users\\123\\Desktop\\test";
String name = "a.txt";
String name0 = "b.txt";
File file = new File(dir,name);
InputStream inputStream = new FileInputStream(file);
// printlnFile(inputStream);
// System.out.println("==================");
OutputStream outputStream = new FileOutputStream(dir+File.separator+name0);
//testWrite(inputStream,outputStream);
testWriteBuf(inputStream,outputStream);
}
public static void read(InputStream inputStream)throws IOException{
int readrulst = inputStream.read();
System.out.println(readrulst);
}
public static void printlnFile(InputStream inputStream)throws IOException{
byte[] buf = new byte[inputStream.available()];
int lenget;
while ((lenget = inputStream.read(buf)) != -1){
System.out.print(new String(buf,0,lenget));
}
inputStream.close();
}
//單個位元組讀取性能差效果不好,中文會有亂碼
public static void testWrite(InputStream inputStream,OutputStream outputStream)throws IOException{
int value = 0;
while (value != -1){
value = inputStream.read();
//System.out.print(value);
outputStream.write(value);
}
inputStream.close();
outputStream.close();
}
public static void testWriteBuf(InputStream inputStream,OutputStream outputStream)throws IOException{
byte[] buf = new byte[1024];
int length;
while ((length = inputStream.read(buf)) != -1){
outputStream.write(buf,0,length);
}
inputStream.close();
outputStream.close();
}
}


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259452.html
標籤:java
上一篇:【藍橋杯省賽JavaB組真題詳解】飲料換購(2015)
下一篇:1小時掌握列舉類
