JavaIO 總結筆記 IO簡介和File檔案
簡介:
IO操作面臨很多問題,資訊量的巨大,網路的環境等等,因為IO不僅僅是對本地檔案、目錄的操作,有時對二進位制流、還有一部分是網路方面的資源,
所以多種原因直接造成IO操作無疑是耗時且複雜多變的。Java對IO的支援是個不斷的演變過程,經過了很多的優化,直到JDK1.4以後,才趨於穩定,
在JDK1.4中,加入了nio類,解決了很多效能問題,雖然我們有足夠的理由不去了解關於Java IO以前的情況,但是為了學好現在的類,
我們還是打算去研究下,通過掌握類的優化情況來徹底理解IO的機制!Java IO主要主要在java.io包下,分為四大塊近80個類:
1基於位元組操作的I/O介面:InputStream和OutputStream
2基於字元操作的I/O介面:Writer和Reader
3基於磁碟操作的I/O介面:File
4基於網路操作的I/O介面:Socket(不在java.io包下)
影響IO效能的無非就是兩大因素:資料的格式及儲存的方式,前兩類主要是資料格式方面的,後兩個類是儲存方式方面的:本地和網路。
所以策劃好這兩個方面的活動,有助於我們合理使用IO。
IO結構圖:
一、java io的開始:
File檔案
我們主要講的是流,流的本質也是對檔案的處理,我們循序漸進一步一步從檔案講到到流去。
java 處理檔案的類 File,java提供了十分詳細的檔案處理方法,這裡只列舉一些簡單的例子,其他的可以查API介面文件
package com.afinalstone.file;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by AFinalStone on 2017/6/27.
*/
public class F01_FileTest {
//獲取系統的行分隔符,檔案分隔符
private String line = System.getProperty("line.separator");
private String separator_Path = System.getProperty("file.separator");
/**
* @throws IOException 檢測當前目錄是否存在檔案,不存在則建立
*/
public static void createFile() throws IOException {
File f = new File(IO01_FileTest);
System.out.println(f);
//public boolean exists() 判斷檔案是否存在
if (f.exists()) {
System.out.println("File Exists");
} else {
System.out.println("File No Exists");
// public boolean createNewFile() 建立新檔案
// public boolean mkdir() 根據路徑建立單級目錄
// public boolean mkdirs() 根據路徑建立目錄且允許建立多級目錄
f.createNewFile();
}
}
/**
* 獲得檔案最後一次修改時間
*/
public static void getTimeOfLastModified() {
File f = new File(IO01_FileTest);
//public long lastModified() 檔案最後一次被修改的時間,UNIX時間
long time = f.lastModified();
System.out.println(time);
Date d = new Date(time);
System.out.println(d);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
System.out.println(sdf.format(d));
}
public static void operateFile() {
File f = new File(IO01_FileTest);
//public boolean canWrite() 檔案是否可寫
System.out.println("canWrite: "+f.canWrite());
//public long length() 返回檔案內容長度,單位位元組
System.out.println("length: "+f.length());
//public String getPath() 返回檔案的路徑資訊
System.out.println("getPath: "+f.getPath());
//public boolean isFile() 判斷給定的路徑是否是一個檔案
System.out.println("isFile: "+f.isFile());
//public boolean isDirectory() 判斷給定的路徑是否為目錄
System.out.println("isDirectory: "+f.isDirectory());
//public String getName() 獲得目錄的名字
System.out.println("getName: "+f.getName());
System.out.println("getPath: "+f.getPath());
//public boolean renameTo(File dest) 重新命名檔案,路徑不同會新建
//f.renameTo(new File("c:\\test\\b.txt"));
//public boolean delete() 刪除檔案或者空目錄
// f.delete();
}
public static void listFile(){
// public File[] listFiles() 列出指定目錄的全部檔案和資料夾
File fs=new File("src\\com\\afinalstone\\file");
File[] temp=fs.listFiles();
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]+"\t"+temp[i].length()+"\t"+temp[i].lastModified());
}
// public String[] list() 列出指定目錄的全部檔案或資料夾的名稱
String[] s=fs.list();
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}
temp = fs.listFiles(new FileFilter(){//自定義一個過濾器類
public boolean accept(File f) { //.java
//1.
if(f.isFile())
{
//2.
String name=f.getName();
//System.out.println(name);
//3.
if(name.endsWith(".java"))
return true;
else {
return false;
}
}
else {
return false;
}
}});
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
}
}
專案地址:傳送門
相關文章
- 操作檔案方法簡單總結(File,Directory,StreamReader,StreamWrite )
- python file 檔案操作筆記Python筆記
- Java io.File應用(建立路徑和檔案)Java
- Java IO8:IO簡單總結Java
- 3. 檔案上傳漏洞——漏洞總結筆記筆記
- 程式設計體系結構(04):JavaIO流檔案管理程式設計JavaAI
- Java IO簡要方法總結Java
- 檔案讀寫網路IO簡單瞭解,同步IO和非同步IO非同步
- 專案(FBMS)總結-簡介篇
- Java IO1:IO和FileJava
- TSM file client檔案備份,歸檔基本命令總結client
- CTF 中 glibc堆利用 及 IO_FILE 總結
- 差異檔案(diff)和補丁檔案(patch)簡介
- 筆記50-Spring簡介和配置筆記Spring
- IO總結
- IO——簡略的學習筆記(1)筆記
- YAML檔案簡介YAML
- Mybatis筆記總結MyBatis筆記
- javascript 總結筆記JavaScript筆記
- Latch總結筆記筆記
- ENQUEUE總結筆記ENQ筆記
- kvm筆記總結筆記
- I/O程式設計技術(檔案IO)筆記綱要梳理程式設計筆記
- iOS 檔案操作簡介iOS
- .tpk格式檔案簡介
- /etc/hosts檔案簡介
- 《程式碼整潔之道》總結和筆記筆記
- Puppeteer筆記(一):Puppeteer簡介筆記
- gcc簡介(學習筆記)GC筆記
- C IO複用select, epoll 簡單總結
- IO流簡介及方法
- C++ IO庫簡介C++
- JAVA阻塞IO(BIO)簡介Java
- 簡單檔案搜尋:Find Any File for MacMac
- IO程式設計和NIO程式設計簡介程式設計
- 鎖的總結筆記筆記
- File類的特點?如何建立File類物件?Java中如何操作檔案內容,什麼是Io流Io流如何讀取和寫入檔案?位元組緩衝流使用原則?物件Java
- 檔案管理簡單介紹