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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值