Day09

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2OqLhIdS-1613780200617)(C:\Users\lcj\AppData\Roaming\Typora\typora-user-images\image-20210207194842897.png)]TreeSet测试

package com.CollectionText;

import java.util.Comparator;
import java.util.TreeSet;

public class StringApplication {
    public static void main(String[] args) {
        StringText s1=new StringText("2  fghjklasjhgfskbanlv");
        StringText s2=new StringText("1  fgdhkjak;fl's;v");
        StringText s3=new StringText("4  hbjvl;aio'oo;vlgiyu;h'ipdjoa'sbvou");
        StringText s4=new StringText("3  n lhka;oiskpef9hvin'pak");
        //创建集合,并指定比较规则
        TreeSet<StringText> stringTexts=new TreeSet<>(new Comparator<StringText>() {
            @Override
            public int compare(StringText o1, StringText o2) {
                int n1=o1.getSt1().length()-o2.getSt1().length();
                int n2=o1.getSt1().compareTo(o2.getSt1());
                return n1==0?n2:n1;
            }
        });
            stringTexts.add(s1);
            stringTexts.add(s2);
            stringTexts.add(s3);
            stringTexts.add(s4);
        System.out.println(stringTexts.toString());
    }
}
package com.CollectionText;

public class StringText {
    String st1;

    public StringText(String st1) {
        this.st1 = st1;
    }

    public String getSt1() {
        return st1;
    }

    public void setSt1(String st1) {
        this.st1 = st1;
    }

    @Override
    public String toString() {
        return "StringText{" +
                "st1='" + st1 + '\'' +
                '}';
    }
}

Map 集合

Map接口特点:

		1. 用于存储任意值对(Key-Value)
		2. 键:无序、无下标、不允许重复(唯一)
		3. 值:无序、无下标、允许重复
package com.mapTezt;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
Map接口的使用
特点:1.存储的键值对2。键不能重复、值可以重复3。无序
 */
public class Demo01 {
    public static void main(String[] args) {
        //创建Map集合
        Map<String,String> map=new HashMap<>();
        //添加元素
        map.put("cn","中国");
        map.put("ua","英国");
        map.put("usa","美国");
        System.out.println(map.size());
        System.out.println(map.toString());
        //删除元素
        map.remove("usa");
        System.out.println(map.size());
        //遍历
                //1.使用KeySet();
        Set<String> set = map.keySet();
        for (String key:set) {
            System.out.println(key+"----"+map.get(key));
        }  
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String,String> entry:entries) {
            System.out.println(entry.getKey()+"----"+entry.getValue());
        }
    }
}

I/O流

字节输出流【OutputStream】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgZtXvbm-1613780200619)(C:\Users\lcj\AppData\Roaming\Typora\typora-user-images\image-20210207155724570.png)]

package com.ioText;
/*
java.io.OutputStream:  字节输出流
此抽象类是表示所有字节流的所有类的超类(父类)
定义了一些子类共性的成员方法
    -publi void close():关闭此输出流并释放与此相关联的任何资源
    -publi void flush():刷新此输出流并强制任何缓冲的输出字节被写入
    -publi void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
    -publi void write(byte[] b,int off,int len):从指定字节数组len字节,从偏移量off开始输出到此输出流
    -publi abstract void write(byte[] b)从指定的字节输出流

java.io.FileOutPutStream extends OutPutStream
FileOutPutStream:文件字节输出流
作用:把内存中的数据写入到硬盘的文件中

构造方法:
     FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流
     FileOutputStream(File file)创建一个向指定File对象表示的文件中写入数据的文件输出流
     参数:写入数据的目的
     String name;目的地是文件的路径
     File file;目的地是一个文件
     构造方法的作用:
     1. 创建一个FileOutputStream对象
     2. 会根据构造方法中传递的文件/文件路劲,创建一个空的文件
     3. 会把FileOutputStream对象指向创建好的文件
写入数据的原理(内存-->硬盘)
        java程序-->JVM(java虚拟机)-->OS(操作系统)-->OS调用写数据的方法-->把数据写入文件中


字节输出流的步骤(重点)
        1.创建一个FileOutputStream对象,构造方法中传递谢润数据的目的地
        2.调用FileOutputStream对象中的Write,把数据写入到文件中
        3.释放资源(流使用会占用一定的内存,使用完毕要把内存清空,提高程序与的效率)
 */

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

public class Demo01 {
    public static void main(String[] args) throws IOException {
        //1.创建一个FileOutputStream对象,构造方法中传递谢润数据的目的地
        FileOutputStream fos=new FileOutputStream("基础语法\\a.txt");
        //2.调用FileOutputStream对象中的Write,把数据写入到文件中
        fos.write(97);//-publi abstract void write(byte[] b)从指定的字节输出流
        //3.3.释放资源(流使用会占用一定的内存,使用完毕要把内存清空,提高程序与的效率)
        fos.close();
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZsoeUzp-1613780200622)(C:\Users\lcj\AppData\Roaming\Typora\typora-user-images\image-20210207170410308.png)]

package com.ioText;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

/*
        -public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
       一次写多个字节的方法

        -public void write(byte[] b,int off,int len):把字节数组的一部分写入到吻技安
        从指定字节数组len字节,从偏移量off开始输出到此输出流
 */
public class Demo02 {
    public static void main(String[] args) throws IOException {
        //创建FileOutputStream对象,构造方法中绑定要写入数据的目的地
        FileOutputStream fos = new FileOutputStream(new File("基础语法\\b.txt"));
        //调用FileOutputStream对象中的方法write,把数据写入文件中
        //面试题:在文件要显示100,要写入几个字节
        fos.write(49);
        fos.write(48);
        fos.write(48);
        /*
        -public void write(byte[] b):将b.length字节从指定的字节数组写入此输出流
         一次写多个字节
                如果写第一个字节是正数(0-127),那么显示的时候会查询ASCII表
                如果写的第一个字节是负数,那么第一个字节会和第二个字节,两个字节组成一个中文显示,查询默认码表(GBK)
         */
        byte[] bytes={65,66,67,68,69};
        fos.write(bytes);
        /*
        -public void write(byte[] b,int off,int len):从指定字节数组len字节,从偏移量off开始输出到此输出流
        int off:数组的开始索引  int len:写几个字节
         */
        fos.write(bytes,1,2);
        /*
        写入字符的方法:可以使用String类中的方法把字符串转换为字节数组
                byte[] getBytes();  把字符串转换为字节数组
         */
        byte[] bytes1 = "你好".getBytes();
        System.out.println(Arrays.toString(bytes1));
        fos.write(bytes1);
        //释放资源
        fos.close();
    }
}
package com.ioText;

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

/*
    追加写/续写:使用两个参数的构造方法
        FileOutputStream(String name,boolean append)创建一个向具有指定 name 的文件中写入数据的输出文件流
        FileOutputStream(File file,boolean append)创建一个向指定file对象表示的文件中写入数据的文件输出流。
        参数:
            String name,File file:写入数据的目的地
            boolean append:追加写的开关
                true:创建对象不会覆盖原文件,继续在文件的末尾追加写数据
                false:创建一个新文件,覆盖源文件
    写换行:写换行符
    windows:\r\n
    linux:/n
    mac:/r
 */
public class Demo03 {
    public static void main(String[] args) throws IOException {
        //创建对象
        FileOutputStream fos=new FileOutputStream("基础语法\\c.txt",true);
        for (int i = 1; i <10 ; i++) {
            //写入数据
            fos.write("你好".getBytes());// 把字符串转换为字节数组
            fos.write("\r\n".getBytes());//换行符号
        }


        //释放资源
        fos.close();

    }
}

字节输入流【InputStream】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7qIJo129-1613780200624)(C:\Users\lcj\AppData\Roaming\Typora\typora-user-images\image-20210207194827390.png)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值