第七章:IO

一、输入和输出的概念
输入输出( I/O ) 把电脑硬盘上的数据读到程序中,称为输入 , input, 进行数据
read 操作从程序往外部设备写数据,称为输出,即 output ,进行数据的 write
操作
二、File
1、File 类是 java.io 包中很重要的一个类;
2、File 类的对象可以表示文件,还可以表示目录,在程序中一个 File 类对象可以代
表一个文件或目录;
3、File 对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件
大小等;
4、File 对象无法操作文件的具体数据,即不能直接对文件进行读 / 写操作。
5、File类的常用方法
1、与文件内容有关的内容
import java.io.File;
import java.util.Date;

public class FileDemo1 {
    //文件内容
    public static void main(String[] args) {
        File f1=new File("D:/a.txt");
        File f2=new File("D:/a");
        File f3=new File("D:/a/b.txt");
        System.out.println("文件是否能写入:"+f1.canWrite());
        System.out.println("文件/目录是否存在:"+f3.exists());
        System.out.println("文件/目录是否是隐藏模式:"+f1.getAbsolutePath());
        System.out.println("获取文件绝对地址:"+f1.getAbsolutePath());
        System.out.println("最近一次修改文件的时间:"+f1.lastModified());
        System.out.println("将long转为时间:"+new Date(f1.lastModified()));
        System.out.println("获取文件名:"+f1.getName());
        System.out.println("获取文件字节数:"+f1.length());
        System.out.println(":");
    }
}

2、有关删除的功能 

public class FileDemo2 {
    //创建文件
    public static void main(String[] args) throws IOException {
        File f=new File("D:/aa.txt");
        System.out.println(f.createNewFile());//创建文件(不能创建文件夹),返回boolean,类型的值
        System.out.println(f.delete());//删除文件,返回boolean,类型的值
        System.out.println( f.mkdir());//创建文件夹(只能创建一层)
        System.out.println(f.mkdirs());//创建文件夹(能创建多层)
        System.out.println(f.delete());//删除文件夹,删除时要保证文件夹没有内容
    }
}
三、字节流和字符流

(一)、字节流

1、字节:计算机最小的存储单位,电脑上所有文件都是以字节的形式存储到硬盘

2、输入流(InputStream):往程序中读

(1)、文件输入字节流:FileInputStream

(2)、带缓冲区的字节输入流:BufferedInputStream

(3)、数据输入字节流:DataInputStream

(4)、ObjectInputStream

3、输出流(OutputStream):从程序中往外写

(1)、文件输出字节流:FileOutputStream

(2)、带缓冲区的字节输入流:BufferedOutputStream

(3)、数据据输出字节流:DataOutputStream

(4)、ObjectOutputStream

(二)、字符流

1、字符输入流:Reader

转换流(InputStreamReader):可以将底层的字节转化为字符

(1)、文件输入字符流:FileReader

(2)、字符缓冲输入流:BufferedReader

2、字符输出流:Writer

转换流(OutputStreamWriter):可以将底层的字节转化为字符

(1)、文件输出字符流:FileWriter

(2)、字符缓冲输出流:BufferedWriter

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

public class Homework2 {
    public static void main(String[] args) throws IOException {
        FileInputStream in1=new FileInputStream ("D:/a.png");
        FileInputStream in2=new FileInputStream ("D:/a.png");
        FileOutputStream out1=new FileOutputStream ("D:/b.png");
        FileOutputStream out2=new FileOutputStream ("D:/c.png");
        int size=0;
        int t=0;
        byte [] bytes=new byte[100000000];
        Date date1=new Date ();
        while ((size= in1.read (bytes))!=-1){
            out1.write (bytes,0,size);
        }
        Date date2=new Date ();
        while ((t=in2.read())!=-1){
            out2.write(t);
        }
        Date date3=new Date ();
        System.out.println ("read(byte[] b)的读写速度为:"+ (date2.getTime ()-date1.getTime())+"毫秒");
        System.out.println ("read()的读写速度为:"+ (date3.getTime ()-date2.getTime())+"毫秒");
        in1.close ();
        in2.close ();
        out1.close ();
        out2.close();

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值