javaSE基礎28之IO流

第一節 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,BufferedinputStreamBufferedOutputStream

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 寫入文件



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章