1. 程式人生 > 其它 >IO流--FileInputStream--FileOutputStream

IO流--FileInputStream--FileOutputStream

位元組輸入流:

package com.kaka.testio;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class IODemo1 {
    //Scanner scanner=new Scanner(System.in);//System.in鍵盤錄入,需要鋪管道
    public static void main(String[] args) {
        //1.在檔案和程式之間鋪設管道
        try {
            //1.在檔案和程式之間鋪設管道
            //以下兩句等價於:FileInputStream file=new FileInputStream("E:\\2021.txt");
            File file=new File("E:\\2021.txt");
            FileInputStream f=new FileInputStream(file);//可檢視建構函式
            //2.”開水龍頭“
            int ch=f.read();//read()方法只能讀一個位元組
            System.out.println("ch="+(char)ch);
            //3."關水龍頭"
            f.close();

        } catch (Exception e) {
            System.out.println("檔案找不到!");
        }
    }

}

位元組輸出流:

package com.kaka.testio;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.nio.charset.StandardCharsets;

public class IODemo2 {
    public static void main(String[] args) {

        try {
            //1.建立“水廠”
            String data="Hello world!";
            //2.鋪設程式到碟符檔案的管道
            FileOutputStream os=new FileOutputStream("E:\\2021.txt");//會覆蓋檔案內容,如果是FileOutputStream("E:\\2021.txt",true)則在結尾處寫入
            //3.開啟水龍頭
            byte[] tempBytes=data.getBytes();
            os.write(tempBytes);
            //4.關閉管道
            os.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

io流實現複製:

package com.kaka.testio;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class IODemo3 {
    public static void main(String[] args) {

        try {

            FileInputStream file=new FileInputStream("E:\\2021.txt");
            byte[] tempBytes = new byte[100];
            file.read(tempBytes);
            file.close();

            FileOutputStream os=new FileOutputStream("E:\\2020.txt");
            os.write(tempBytes);
            os.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

測速度:

         long startTime=System.currentTimeMillis();//開始時間

            FileInputStream file=new FileInputStream("E:\\2021.txt");
            byte[] tempBytes = new byte[100];
            file.read(tempBytes);
            file.close();

            FileOutputStream os=new FileOutputStream("E:\\2020.txt");
            os.write(tempBytes);
            os.close();

         long endTime=System.currentTimeMillis();//結束時間
         System.out.println("共耗時"+(endTime-startTime)+"毫秒");