java基礎io流的基本應用

package testio;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

//inputstream與outputstream都可以操作文本文件、視頻文件、音頻等。(這是抽象文件不能實例化)
//包括fileinputstream與fileoutputstream  、bufferedoutputstream與bufferedinputstream

//reader與writer只可以操作文本文件(這是抽象文件,不能實例化)
//filereader與filewriter、bufferedreader與bufferedwriter

public class testinputoutput {
       //這裏在開始就把異常全部拋出,比較方便,
    public static void main(String[] args) throws Exception {
        File file1=new File("a.txt");//這裏是相對路徑
        File file2=new File("b.txt");
        InputStream inputStream=new FileInputStream(file1);
        OutputStream outputStream=new FileOutputStream(file2);
        byte []b=new byte[1024];
        int len;
        while((len=inputStream.read(b))!=-1){
            outputStream.write(b, 0, len);
        }
            outputStream.close();//先關輸入流
            inputStream.close();//在關輸出流
            
    }

}

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++ -->

package testio;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
//bufferedinputstream、bufferedoutputstream與inputstream、outputstream的操作基本一樣
//主要是速度快
import java.io.FileOutputStream;

public class bufferedinputoutputTeat {

    public static void main(String[] args) {
        File file1=null;
        File file2=null;
        try {
            file1=new File("c:\\video\\a.wmv");//由於“\"是轉義符號,所以要用雙斜槓
            file2=new File("d:/test/b.wmv");//或者用”/"來表示
            FileInputStream fileInputStream=new FileInputStream(file1);
            FileOutputStream fileOutputStream=new FileOutputStream(file2);
            BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
            BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
            byte []b=new byte[1024];
            int len;
            while((len=bufferedInputStream.read(b))!=-1){
                bufferedOutputStream.write(b, 0, len);
            }
            
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        }
       
    }
package testio;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;

/*
 * writer與reader的練習
 * 這是字符類,主要操作文本本件,不能操作其他的文件,可以解決中文亂碼的問題
 */
public class testreaderwriter {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String string1="first.txt";
        String string2="second.txt";
        File file1=null;
        File file2=null;
        Reader reader=null;
        Writer writer=null;
        try {
            file1=new File(string1);
            file2=new File(string2);
            reader=new FileReader(file1);
            writer=new FileWriter(file2);
            char [] c=new char[20];//由於是字符流,所以數組應該用字符數組
            int len;
            while((len=reader.read(c))!=-1){
                writer.write(c, 0, len);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(writer!=null){
                try {
                    writer.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            if(reader!=null){
                try {
                    reader.close();
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
        }

    }

}





發佈了39 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章