javaIO類圖
IO類圖
https://blog.csdn.net/luofenghan/article/details/75503750
字節流
字節流
image.png
字符流
字符流
字符流
一、什么地方用到IO?
本地文件讀寫、網絡文件傳輸入、網絡數據傳輸。
案例1:文件寫入
package com.hxw.io;
import java.io.*;
public class FileExample{
public static void main(String[] args) {
createFile();
}
/**
* 文件處理示例
*/
public static void createFile() {
File f=new File("E:/電腦桌面/jar/files/create.txt");
try{
f.createNewFile(); //當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。
System.out.println("該分區大小"+f.getTotalSpace()/(1024*1024*1024)+"G"); //返回由此抽象路徑名表示的文件或目錄的名稱。
f.mkdirs(); //創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
// f.delete(); // 刪除此抽象路徑名表示的文件或目錄
System.out.println("文件名 "+f.getName()); // 返回由此抽象路徑名表示的文件或目錄的名稱。
System.out.println("文件父目錄字符串 "+f.getParent());// 返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null。
}catch (Exception e) {
e.printStackTrace();
}
}
}
案例2:文件復制
package com.joychen.io01;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public static void main(String args[]) {
// TODO自動生成的方法存根
byte[] buffer = new byte[512]; //一次取出的字節數大小,緩沖區大小
int numberRead = 0;
FileInputStream input = null;
FileOutputStream out = null;
try {
input = new FileInputStream("D:/David/Java/java 高級進階/files/tiger.jpg");
out = new FileOutputStream("D:/David/Java/java 高級進階/files/tiger2.jpg"); //如果文件不存在會自動創建
while ((numberRead = input.read(buffer)) != -1) { //numberRead的目的在于防止最后一次讀取的字節小于buffer長度,
out.write(buffer, 0, numberRead); //否則會自動被填充0
}
} catch (final IOException e) {
// TODO自動生成的 catch 塊
e.printStackTrace();
} finally {
try {
input.close();
out.close();
} catch (IOException e) {
// TODO自動生成的 catch 塊
e.printStackTrace();
}
}
}
}
2:序列化: