I-O流、

目录

I-O流

.close方法

常用方法

字符流的写和读

字节流的写和读

读 

图片复制例题

序列化与反序列化

序列化

   反序列化  


I-O流

.close方法

package demo211207;

import java.util.Scanner;

//GC=自动垃圾回收机制
//垃圾回收算法
//垃圾回收器//IO流
//I=input
//O=output
//流

public class TestA {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String line = scan.nextLine();// 控制台输入
        System.out.println(line);
        scan.close();// 关闭

        TestA ta = new TestA();
        ta = null;
        
    }

}


package demo211207;

常用方法

import java.io.File;
import java.io.IOException;

public class TestB {

	public static void main(String[] args) throws IOException {
		File file;// 文件系统
		// window \
		// linux /
		System.out.println(File.separatorChar);// 文件分隔符
		// 绝对路径
		// windows=盘符开始,如D:\\test\\temp.txt
		File f1 = new File("D:\\test\\temp.txt");// String--文件路径
		System.out.println(f1.getAbsolutePath());
		System.out.println(f1.getPath());
		// 相对路径
		// 相对于某个位置的路径
		File f2 = new File("../temp.txt");// ./当前目录 ../上一级目录
		System.out.println(f2.getAbsolutePath());
		System.out.println(f2.getPath());

		File f3 = new File("D:\\test\\temp111.txt");
		File f4 = new File("D:\\test");
		System.out.println(f3.exists());//判断是否存在,可能不存在
		System.out.println(f3.isFile());//判断是否文件,也许可能是文件或者目录
		System.out.println(f4.isDirectory());//检查一个对象是否是文件夹
		System.out.println(f3.isHidden());//判断是否为隐藏文件
		f3.createNewFile();
		f4.mkdir();
//		f3.renameTo();
//		f3.delete();//不放入回收站
//		f3.deleteOnExit()
		String[] list = f4.list();//获取当前目录下所有文件
		File[] files = f4.listFiles();//File类型的数组,返回的是该目录中的文件和目录

		long len = f3.length();// 文件大小
		String p = f3.getParent();//getParent()父路径
		long d = f3.lastModified();//返回这个抽象路径名所表示的文件最后一次修改的时间。
//		File.listRoots();
	}

}

 常用方法:

boolean exists() //表示当前路径是否存在
boolean isFile() //判断当前路劲是否是文件
boolean isDirectory() //判断当前是否为目录
boolean isHidden() //判断是否是隐藏文件
void deleteOnExit() //在程序退出时删除
boolean delete() //直接删除
boolean createNewFile() //创建新文件 在当前文件不存在的情况下,创建成功返回true,文件存在返回false
file.mkdir(); //创建目录
file.getName();// 获取文件名
file.getAbsolutePath();//获取绝对路径
file.list(); //获取当前目录下所有文件
String[] list(FilenameFilter filter)  //获取过滤后的目录或文件


ackage demo211207;

字符流的写和读

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

//流-基本使用-核心步骤
//1-创建流
//2-读入/写出
//3-关闭

//类型-分类
//字节流(OutputStream/InputStream)--以字节的形式,绝大部分数据文件,图片音频视频
//字符流(Writer/Reader)--以字符的形式,对字符文本类型的数据进行操作//方向-流向
//输入
//输出

public class TestC {

    public static void main(String[] args) throws IOException {
        File file = new File("D:\\test\\temp111.txt");
        FileWriter fw = new FileWriter(file);
        // FileWriter fw = new FileWriter("D:\\test\\temp111.txt");
        fw.write("abcdefg");
        fw.close();
        fw = null;
    }


package demo211207;

import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;

//终端流-直接与目标终端打交道
//拼接流-直接与流打交道(构造方法可以看出来)
//流向一致=拼接流与终端流

public class TestD {

	public static void main(String[] args) throws IOException {
		File file = new File("D:\\test\\temp111.txt");
		FileReader fr = new FileReader(file);

		BufferedReader br = new BufferedReader(fr);// 缓冲流、缓存流
		String line = br.readLine();
		System.out.println(line);

		br.close();
		fr.close();
		file.canExecute();

		br = null;
		fr = null;
		file = null;
	}

	public static void main1(String[] args) throws IOException {
		File file = new File("D:\\test\\temp111.txt");
		FileReader fr = new FileReader(file);
//		System.out.println(Arrays.toString(cubf));
		char[] cubf = new char[100];// 缓冲/缓存区
		int len = fr.read(cubf);
//		System.out.println(Arrays.toString(cubf));
//		System.out.println(len);
		cubf = Arrays.copyOf(cubf, len);
//		System.out.println(Arrays.toString(cubf));
		String line = new String(cubf);
		System.out.println(line);

		fr.close();
		fr = null;
	}
}


字节流的写和读

package demo211207;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.UUID;

public class TestE {

    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("D:\\test\\temp111.txt");

        byte[] data = new byte[1024];// 缓冲区
        int len = fis.read(data);
        data = Arrays.copyOf(data, len);
        System.out.println(new String(data));

        fis.close();
        fis = null;
    }

读 

   public static void main2(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("D:\\test\\temp111.txt");
        String s = "123456789";
        byte[] b = s.getBytes();
        fos.write(b);

        fos.close();
        fos = null;
    }
}


package demo211207;

图片复制例题

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
//1.复制a文件夹下一张图片到b文件夹下
//2.复制a文件夹所有张图片到b文件夹下

public class TestF {

    public static void main(String[] args) throws IOException {
        File fileA = new File("D:\\a");
        File fileB = new File("D:\\b");
        File fileC = new File("D:\\a\\318393.jpg");
        copyAll(fileA, fileB);
        copy(fileC, fileB);

    }

    public static void copyAll(File in, File out) throws IOException {
        File[] file = in.listFiles();// 得到每个文件
        for (File a : file) {
            copy(a, out);
        }

    }

    public static void copy(File in, File out) throws IOException {
        FileInputStream fis = new FileInputStream(in);
        String temp = out.getAbsolutePath() + "\\" + in.getName();
        FileOutputStream fos = new FileOutputStream(temp);

        byte[] data = new byte[1024 * 1024];
        int len = -1;
        while ((len = fis.read(data)) != -1) {
            data = Arrays.copyOf(data, len);
            fos.write(data);
        }

        fos.close();
        fis.close();

        fos = null;
        fis = null;

    }

}


序列化与反序列化

package demo211207;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

序列化

  public static void main1(String[] args) throws IOException {
        TestModel tm1 = new TestModel();
        tm1.setAge(20);
        tm1.setName("小猪熊");
        FileOutputStream fos = new FileOutputStream("D:\\test\\temp.txt");
        ObjectOutputStream oos = new ObjectOutputStream(fos);

        oos.writeObject(tm1);

        oos.close();
        fos.close();
    }

   反序列化
  

  public static void main(String[] args) throws IOException, ClassNotFoundException {
        FileInputStream fps = new FileInputStream("D:\\test\\temp.txt");
        ObjectInputStream oos = new ObjectInputStream(fps);
        
        Object obj = oos.readObject();
        if(obj instanceof TestModel) {
            TestModel tm = (TestModel) obj;
            System.out.println(tm.getAge()+","+tm.getName());
        }
        
        oos.close();
        fps.close();
    }


package demo211207;

import java.io.Serializable;

public class TestModel implements Serializable{

    /**
     * serialVersionUID序列号/序列ID
     */
    private static final long serialVersionUID = 94406258500902749L;
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值