java中的各种流

重点是第4个中写得心得,看一看

1:FileInputStream的用法
package lianxi;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class LianXi {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String pathname="src\\lianxi\\LianXi.java";
        File file=new File(pathname);
        FileInputStream fInputStream;
        int length=0;
        try {
            fInputStream=new FileInputStream(file);
            try {
                while((length=fInputStream.read())!=-1){
                    System.out.print((char)length);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }

}

2:FileReader的用法
package lianxi;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class LianXi {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String pathname="src\\lianxi\\LianXi.java";
        try {
            FileReader f=new FileReader(pathname);
            int length=0;
            try {
                while((length=f.read())!=-1){
                    System.out.print((char)length);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}


3:BufferedReader的用法
package lianxi;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

public class LianXi {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String pathname="src\\lianxi\\LianXi.java";
        FileReader r;
        try {
            r=new FileReader(pathname);
            BufferedReader b=new BufferedReader(r);
            String s=null;
            try {
                while((s=b.readLine())!=null){
                    System.out.println("read:"+s);
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}



4:复制一个文件的内容到另外一个文件
package lianxi;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

public class LianXi {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String pathname="src\\lianxi\\LianXi.java";
        FileInputStream in = null;
        FileOutputStream out = null;
        try{
            in=new FileInputStream(pathname);
            out=new FileOutputStream("C:\\Users\\2401-\\Desktop\\kelong.txt");
            int length=0;
            while((length=in.read())!=-1){
                out.write((char)length);//这句代码可以直接替换成out.write(length);因为这是
//向文件输出内容,所以read获取到的数字所对应的字符会以相同的方式转换回字符写进文件中,但如果是
//输出到控制台的话,就必须要进行强制类型转换了,不然输出的就是数字,另外注意一下流的read方法返回
//的不是所读字符所在源文件的位置,而是所读字符对应的数字编码。另外write()方法中的参数可以是一个
//byte数组,实现一个byte数组的写入,而不是一个byte的写入,比如write("wo shi ni".getBytes())
            }
        }catch(Exception e){
            
        }
        finally{
            try {
                out.close();
                in.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

你可能感兴趣的