IO的基础学习笔记

IO的基础学习笔记

IO的两大分类:字节流与字符流:

字节流(以Stream结尾)

其中又有两大接口:InputStreamOutputStream接口。
字节流能输入,输出任意类型的文件:文本文件,图片,视频等。
接下来展示其中访问图片的代码:

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

public class TextIOStream {
    public static void main(String[] args) {
        FileOutputStream fo = null;
        FileInputStream fi = null;
        try{  
            //创建输入流与输出流的对象
            fi = new FileInputStream("E:\\TextIO\\TextIO1\\textpicture.bmp");
            fo = new FileOutputStream("E:\\TextIO\\TextIO1\\textpicture2.0.bmp");
            数据的读入和写出操作
            byte[] buffer = new byte[20];
            int len;
            while ((len = fi.read(buffer)) != -1){
                fo.write(buffer,0,len);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if(fo != null){
                    fo.close();//关闭流资源
                }
            }catch (IOException e){
                e.printStackTrace();
            }
            try {
                if(fi != null){
                    fi.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}  

字符流(以Reader与Writer结尾)

仅能传输.txt文件
感觉没啥好说的其实操作跟字符流差不多
还是展示一下代码:

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TextIOReaderWriter {
    public static void main(String[] args) throws IOException {
        FileReader fr = null;
        FileWriter fw = null;
        try {
            File srcFile = new File("E:\\TextIO\\TextIO2\\TextIO3.txt");
            File destFile = new File("E:\\TextIO\\TextIO2\\TextIO8.txt");
            fr = new FileReader(srcFile);
            fw = new FileWriter(destFile);
            char[] cbuf = new char[5];
            int len;
            while((len = fr.read(cbuf))!= -1){
                fw.write(cbuf,0,len);
                System.out.println(cbuf);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if (fw != null){
                    fw.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }finally {
                try{
                    if(fr != null){
                        fr.close();
                    }
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }
    }
}  

最后说一下File

File对象可以通过绝对路径相对路径(以String形式)

import java.io.*;

public class TextFile {
    public static void main(String[] args) throws FileNotFoundException {
        File file = new File("E:\\text.txt");//通过绝对路径构造File类
        File file1 = new File("E:\\TextIO\\TextIO2\\TextIO3.txt");
        File file2 = new File("E:\\TextIO\\TextIO2\\TextIO5");
        File file3 = new File("E:\\TextIO");
        //FileOutputStream fileOut =new FileOutputStream(file1);
        try{
            if(file.exists()) {
                file.createNewFile();//若文件不存在则创建该文件(空文件)
            }
            if(!file1.exists()) {
                file1.createNewFile();
            }
            if(!file2.exists()){
                file2.mkdirs();
            }
            System.out.println(file.getPath());//该文件的绝对路径
            System.out.println(file.getName());//该文件名称
            System.out.println(file.length());//该文件的大小
            String[] name = file3.list();//为该文件夹下的所有文件名
            System.out.println(name[0]);
            /*file.delete();//删除该文件
            file1.delete();
            file2.delete();*/
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
1.delete();
            file2.delete();*/
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值