Java基礎鞏固(四)-流(Stream)、檔案(File)和IO
阿新 • • 發佈:2018-12-07
Java流(Stream)、檔案(File)和IO
Java.io 包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標。
Java.io 包中的流支援很多種格式,比如:基本型別、物件、本地化字符集等等。
一個流可以理解為一個數據的序列。輸入流表示從一個源讀取資料,輸出流表示向一個目標寫資料。
讀取控制檯輸入
讀取字元 read()
public class BRRead {
public static void main(String[] args) throws IOException {
char c;
// 使用System.in 建立 bufferReader
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("輸入字元,按下 'q' 退出");
// 讀取字元
do{
c = (char) bufferedReader.read();
System.out.println(c);
}while (c != 'q');
}
}
讀取字串 readLine()
public class BRReadLines {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str;
System.out.println("enter lines of text");
System.out.println("enter 'end' to quit" );
do {
str = bufferedReader.readLine();
System.out.println(str);
} while (!str.equals("end"));
}
}
讀寫檔案
IO流 字元流 & 位元組流
FileinputStream
File f = new File("C:/java/hello");
InputStream out = new FileInputStream(f);
FileoutputStream
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);
public class FileStreamTest2 {
public static void main(String[] args) throws IOException {
File f = new File("a.txt");
FileOutputStream fop = new FileOutputStream(f);
// 構建FileOutputStream物件,檔案不存在會自動新建
OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
// 構建OutputStreamWriter物件,引數可以指定編碼,預設為作業系統預設編碼,windows上是gbk
writer.append("中文輸入");
// 寫入到緩衝區
writer.append("\r\n");
// 換行
writer.append("English");
// 重新整理快取衝,寫入到檔案,如果下面已經沒有寫入的內容了,直接close也會寫入
writer.close();
// 關閉寫入流,同時會把緩衝區內容寫入檔案,所以上面的註釋掉
fop.close();
// 關閉輸出流,釋放系統資源
// 構建FileInputStream物件
InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
// 構建InputStreamReader物件,編碼與寫入相同
StringBuffer sb = new StringBuffer();
while (reader.ready()) {
sb.append((char) reader.read());
// 轉成char加到StringBuffer物件中
}
System.out.println(sb.toString());
reader.close();
// 關閉讀取流
fip.close();
// 關閉輸入流,釋放系統資源
}
}
console
中文輸入
English
建立目錄
public class CreateDir {
public static void main(String[] args) {
String dirname = "/project/lib/alancode";
File d = new File(dirname);
// mkdir() : 建立此抽象路徑名指定的目錄。
// mkdirs() : 建立此抽象路徑名指定的目錄,包括建立必需但不存在的父目錄。
// 這裡因為沒有 該目錄就使用了 mkdirs 同時 如果沒有指定盤 預設是當前工程所在的盤
d.mkdirs();
}
}