第一節 IO流簡介
流是一組有順序的,有起點和終點的字節集合,是對數據傳輸的總稱或抽象。即數據在兩設備間的傳輸稱爲流,流的本質是數據傳輸,根據數據傳輸特性將流抽象爲各種類。方便更直觀的進行數據操作。
IO流的分類
根據處理數據類型的不同分爲:字節流和字符流
根據數據流向不同分爲輸入流和輸出流
第二節 文件操作File類
1,public boolean mkdir() 創建此抽象路徑名指定的目錄
2,public boolean createNewFile() 創建一個文件
3,public boolean delete() 刪除此抽象路徑名錶示的文件或目錄。如果此路徑名錶示一個目錄,則該目錄必須爲空才能刪除
4,public boolean exists() 測試此抽象路徑名錶示的文件或目錄是否存在
5,public File[] listFiles() 返回一個抽象路徑名數組,這些路徑名錶示此抽象路徑名錶示的目錄中的文件
6,public boolean isDirectory() 測試此抽象路徑名錶示的文件是否是一個目錄
import java.io.File;
import java.io.IOException;
/**
*
* @author Administrator
*/
public class Demo1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
File file=new File("d://java創建的目錄");
boolean b=file.mkdir();
if(b){
System.out.println("目錄創建成功");
file=new File("d://java創建的目錄//java文件.txt");
Boolean b2=file.createNewFile();
if(b2){
System.out.println("創建成功");
}else{
System.out.println("創建失敗");
}
}else{
System.out.println("目錄創建失敗");
}
}
}
》》》》》》》》》》》》》》
import java.io.File;
/**
*
* @author Administrator
*/
public class Demo2 {
public static void main(String args[]){
File file=new File("D://java創建的目錄//java文件.txt");
if(file.exists()){
boolean b=file.delete();
if(b){
System.out.println("刪除文件成功");
}else{
System.out.println("刪除文件失敗");
}
}
file =new File("D://java創建的目錄");
if(file.exists()){
boolean b=file.delete();
if(b){
System.out.println("刪除目錄成功");
}else{
System.out.println("刪除目錄失敗");
}
}
}
}
》》》》》》》》》》》》》
import java.io.File;
/**
*
* @author Administrator
*/
public class Demo3 {
public static void listFile(File file){
if(file!=null){
if(file.isDirectory()){
File f[]=file.listFiles();
if(f!=null){
for(int i=0;i<f.length;i++){
listFile(f[i]);//遞歸調用
}
}
}else{
System.out.println(file);
}
}
}
public static void main(String args[]){
File file=new File("D://EFI");
listFile(file);
}
}
第三節 字節輸入輸出流
1,InputStream 讀取文件
2,OutputStream寫入文件
3,BufferedinputStream和BufferedOutputStream
4,緩衝和非緩衝的區別及性能對比
public class Demo1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://測試文件.txt");
InputStream in=new FileInputStream(file);
byte b[]=new byte[1024];
in.read(b);
in.close();
System.out.println("讀取的內容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》》》
public class Demo2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://測試文件.txt");
InputStream in=new FileInputStream(file);
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
in.read(b);
in.close();
System.out.println("讀取的內容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》
public class Demo3 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
File file=new File("D://測試文件.txt");
InputStream in=new FileInputStream(file);
int fileLength=(int)file.length();
byte b[]=new byte[fileLength];
int temp=0;
int index=0;
while((temp=in.read())!=-1){
b[index++]=(byte)temp;
}
in.close();
System.out.println("讀取的內容是:"+new String(b,"GB2312"));
}
}
》》》》》》》》》》》
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
/**
*
* @author Administrator
*/
public class Demo4 {
public static void main(String args[]) throws Exception{
File file=new File("D://測試文件.txt");
OutputStream out=new FileOutputStream(file,true);
String str="我是中國人";
byte b[]=str.getBytes();
out.write(b);
out.close();
}
}
》》》》》》》》》》》
public class Demo5 {
public static void stream() throws Exception{
InputStream in=new FileInputStream("D://測試文件.txt");
OutputStream out=new FileOutputStream("D://臨時文件.txt");
int b=0;
while((b=in.read())!=-1){
out.write(b);
}
in.close();
out.close();
}
public static void main (String args[]) throws Exception{
stream();
}
}
》》》》》》》》》》》》》》》
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
*
* @author Administrator
*/
public class Demo6 {
public static void bufferStream() throws Exception{
//帶緩衝的字節輸入流
BufferedInputStream bf=new BufferedInputStream(new FileInputStream("D://測試文件.txt"));
//帶緩衝的字節輸出流
BufferedOutputStream bf2=new BufferedOutputStream(new FileOutputStream("D://臨時文件.txt"));
int b=0;
long startTime=System.currentTimeMillis();
while((b=bf.read())!=-1){
bf2.write(b);
}
bf.close();
bf2.close();
long endTime=System.currentTimeMillis();
System.out.println("非緩衝花費的時間:"+(endTime-startTime)+"ms");
}
public static void stream() throws Exception{
InputStream in=new FileInputStream("D://測試文件.txt");
OutputStream out=new FileOutputStream("D://臨時文件.txt");
int b=0;
long startTime=System.currentTimeMillis();
while((b=in.read())!=-1){
out.write(b);
}
in.close();
out.close();
long endTime=System.currentTimeMillis();
System.out.println("非緩衝花費的時間:"+(endTime-startTime)+"ms");
}
public static void main (String args[]) throws Exception{
stream();
bufferStream();
}
}
第四節 字符輸入輸出流
1,Reader 讀取文件
2,Writer 寫入文件