IO流

目录

1. 泛型

1.1 什么是泛型

1.2 如何使用泛型

1.3 自己定义泛型类

2. File对象

2.1 File介绍

2.2 创建File对象

2.3 增加

2.4 删除

2.5 修改

2.6 查询

3. IO流

3.1 IO流概述

3.2 字节流

3.2.1 字节输出流

3.2.2 字节输入流

3.2.3 使用字节流完成文件复制

3.2 字符流

3.2.1 字符输出流

3.2.2 字符输入流

3.2.3 使用字符流进行文件复制

3.3 包装流

3.3.1 缓存流

3.3.2 对象流

4. 总结


目录

1、泛型
2、File类
3、IO流
      3.1 字节流
      3.2 字符流
      3.3 包装流
            3.3.1 缓存流
            3.3.2 对象流

1. 泛型

1.1 什么是泛型

1. 泛型就是限制我们得数据类型。

2.为什么使用泛型?
我们原来在定义集合时,是如下得定义方式:
        List list=new ArrayList();//该集合没有使用泛型
        list.add("java01");
        list.add("java02");

        String str= (String) list.get(0);//获取元素 需要进行强制类型转换
        System.out.println(str);
获取元素时,不方便对元素进行相应得其他操作。     

1.2 如何使用泛型

List<类型> list=new ArrayList<类型>(); 只能在该集合中存储指定得类型。

public static void main(String[] args) {
        List<String> list=new ArrayList<>();//这里就限制了集合中每个元素得类型。
        list.add("java01");
        list.add("hello"); //因为集合中只能添加String类型
        list.add("world"); //因为集合中只能添加String类型

        String s = list.get(0); //在获取元素时 默认就是相应得数据类型 而无需在进行转换

        //<K,V>:K:表示键得泛型  V:表示值得泛型
        HashMap<String,Integer> map=new HashMap<>();
        map.put("name",15);
        map.put("age",25);

        Set<String> keys = map.keySet();
    }

1.3 自己定义泛型类

public  class 类名<标识,标识....> {
     标识  变量名;     
     public 标识 方法名(){        
     }     
     public void 方法名(标识 参数名){          
     }
     .........
}

例:定义坐标类

public class Test03 {
    public static void main(String[] args) {
        //在创建泛型类对象时没有指定相应得泛型类型。则默认为Object类型
        Point p1=new Point();
        p1.setX(15);
        p1.setX("北纬50度");

        //这里得泛型必须都是对象类型
        Point<Integer> p2=new Point<Integer>() ;
        p2.setX(25);
        p2.setY(65);
        Integer x = p2.getX();
        Integer y = p2.getY();
        p2.show();

        Point<String> p3=new Point<>();
    }
}
class Point<T>{
     private T x;
     private T y;

     public void show(){
         System.out.println("x坐标为:"+x+";y坐标为:"+y);
     }

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public T getY() {
        return y;
    }

    public void setY(T y) {
        this.y = y;
    }
}

2. File对象

2.1 File介绍

File文件类: 对我们系统上的文件和文件夹的一种抽取。
       (1)创建该类对象时的方法: File file=new File("文件的路径");
       (2)方法: 
             list();列出该目录下所有的子文件名.
             listFiles();列出该目录下所有的子文件对象
             getPath():得到文件的路径
             createNewFile():创建文件
             mkdir();创建单层目录
             mkdirs():创建多层目录
             exists():判断文件是否存在。
             isDirectory():判断是否该文件为目录.
             delete():删除文件

2.2 创建File对象

/*
\\目录层级  在window系统下层级分割符为\  但是在linux和mac系统上分割符为 /
java代码是一种跨平台得语言  开发在window  项目部署在linux
使代码能在任意系统下用有两种解决办法
           
*/
File file1 = new File("E:\\aaa\\a.txt");
//(1)第一种 因为window 兼容 / 和 \
File file2 = new File("E:/aaa/a.txt");
//(2)第二种 File.separator根据当前代码所在系统自动获取相应分割符
System.out.println(File.separator);
File file3 = new File("E:"+File.separator+"aaa");

2.3 增加

        //创建文件
        File file1= new File("E:/AAA/a.txt");//创建File对象
        file1.createNewFile();//创建文件

        File file2 = new File("E:/AAA/aaa");
        file2.mkdir();//创建单层目录

        File file3 = new File("E:/AA
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值