一、流的概念和作用
流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類,方便更直觀的進行數據操作。
二、Java流體系結構圖
三、Java流體系中常用
四、Java IO流的分類
根據處理數據類型的不同分爲:字符流和字節流
根據數據流向不同分爲:輸入流和輸出流
五、Java IO流部分對象實例
//Java IO流測試
IOgutter iogutter = new IOgutter();
//System.out.println(iogutter.GetPath());
//iogutter.CreateDir();//創建目錄
//iogutter.ReadDir();//讀取目錄
//iogutter.Delete_DirFile();//刪除文件夾和文件
iogutter.Writetxt();//寫入文件測試
iogutter.Readtxt();//讀取文件測試
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IOgutter {
/**
* 獲取應用程序運行目錄
*
* @return
*/
public String GetPath() {
return Main.class.getResource("").getPath();
}
/**
* 創建目錄
* File類有兩個方法創建文件夾
* ------| mkdir():創建一個文件夾,成功返回true、失敗返回false
* 失敗表明對象指定的路徑已經存在,或者由於該路徑不存在,指定文件夾不能被創建
* ------| mkdirs():創建一個文件夾和它的所有父文件夾
*/
public void CreateDir() {
String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test";
File dir = new File(dirname);
dir.mkdirs();
//創建下面實例用於刪除的文件夾以及文件
File dir1 = new File(dirname + "/delete_test");
dir1.mkdir();
CreateTxtFile(dirname);//創建文件
}
/**
* 創建文件
*
* @param dirname
*/
private void CreateTxtFile(String dirname) {
File dir2 = new File(dirname + "/delete_test.txt");
try {
if (!dir2.exists())
dir2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 讀取目錄
*/
public void ReadDir() {
String dirname = "/G:/IntelliJIDEA.Worksapce/001/Dir_Test";
File dir = new File(dirname);
if (dir.isDirectory()) {
System.out.println("目錄:" + dirname);
String file[] = dir.list();
for (int i = 0; i < file.length; i++) {
File f = new File(dirname + "/" + file[i]);
if (f.isDirectory())
System.out.println(file[i] + "是目錄");
else
System.out.println(file[i] + "是文件");
}
} else
System.out.println("不是目錄");
}
/**
* 刪除文件夾和文件
* 注意點:刪除某一文件夾時必須保證該文件之下沒有其他文件才能正確刪除
*/
public void Delete_DirFile() {
File folder = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test");
deleteFolder(folder);//刪除文件以及目錄
}
/**
* 刪除文件以及目錄
*
* @param folder
*/
private void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory())
deleteFolder(f);
else
f.delete();
}
}
folder.delete();
}
/**
* 寫入文件測試
*/
public void Writetxt() {
File writename = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
try {
writename.createNewFile();//創建文件
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式
String Messasge = "";
for (int i = 0; i < 3; i++) {
Messasge += df.format(new Date()) + "dir_test00" + i+"\r\n";
}
out.write(Messasge);
out.flush();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 讀取文件測試
*/
public void Readtxt() {
File readname = new File("/G:/IntelliJIDEA.Worksapce/001/Dir_Test/dir_test/dir_test.txt");
try {
FileInputStream fileInputStream = new FileInputStream(readname);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer();
String text = null;
while((text = bufferedReader.readLine()) != null){
sb.append(text+"\r\n");
}
System.out.println(sb.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}