第13天0311 集合的遍历 文件 数据流

  • 集合的遍历
    • Set和List的遍历
      • for循环遍历(foreach)
        • for(int i = 0; i < list.size(); i++) {
          • list.get(i);
        • }
      • 迭代器 Iterator
        • 常用的方法
          • next() 获取下一个元素
          • hasNext() 判断是否还有下一个,如果有,返回true,如果没有,返回false
          • remove() 删除next()返回的元素
    • Map集合的遍历
      • 一般是遍历map中所有的key,通过key来遍历value
      • 首先,通过map中的keySet()方法获取map中的所有的key组成的set集合,然后遍历set中的key,来遍历value
  • Collection工具类
    • Collection集合的工具类,提供了一些父类Collection接口的static方法。
      • Object max(Collection c) 返回集合c中的最大的元素(元素必须是可比较大小的)
      • Object min(Collection c) 返回集合c中最小的元素
      • void reverse(Collection c) 将c中的元素逆序
      • void copy(dest,src) 将集合src中的元素赋值到dest中
      • sort(list) 对list进行排序。
  • 泛型(了解)
    • 将类型给参数化。即将数据类型指定为一个参数,使用时,必须传入具体的参数类型,然后再使用。
      • 定义泛型的变量时,一般在<>中,使用大写的单个字母表示泛型。E,K,V,T,U,S表示泛型。
      • 方式
        • 泛型类
        • 泛型接口
        • 泛型方法
  • 文件
    • java中对于文件的处理,java.io.File类实现的
      • 文件或者文件夹(目录)的管理
      • 文件的属性
      • 文件、目录的创建、删除等操作,但是不能读取文件的内容。
    • File类的构造方法
      • File file = new File(String path); //使用指定的路径名创建File对象。
      • File file = new File(String parent,String child); 在指定的parent目录下新建child的文件
      • File file = new File(File parent,String child);在parent对象的文件夹下,创建新child文件。
    • 常用的成员方法
      • boolean createNewFile(); 当file对象指定的文件不存在时,创建该文件,并返回true,否则返回false
      • static File createTempFile(String prefix,String suffix); 在默认的临时文件夹下创建一个空文件,使用前缀和后缀
      • boolean canRead() 是否可读
      • boolean canWrite() 是否可写
      • boolean canExecute() 是否可执行
      • boolean delete() 删除文件
      • getName() 获取文件名
      • getAbsolutePath() 获取绝对路径
      • getPath() 获取路径
      • String[] list() 获取当前目录下的子文件子文件夹的名字组成的字符串数组
      • File[] lsitFiles() 获取当前目录下的子文件子文件夹对象组成的File数组
      • boolean mkdir() 创建目录,如果创建的目录的父目录不存在,在返回false。举例:file指向"c:/test/hello",如果,test文件夹不存在,则创建失败。
      • boolean mkdirs() 创建目录,如果创建的目录的父目录不存在,在会先自动创建父目录,再创建子目录。
      • boolean isFile() 判断File对象是否是文件
      • boolean isDirectory() 判断File对象是否是文件夹(目录)
    • 练习
      • 1、在D盘下新建一个文件夹名为test。
      • 2、在test文件夹下新建文本文档1.txt,2.txt,3.txt以及文件夹hello
      • 3、在hello文件夹夹下新建文本文档4.txt,5.txt
      • 4、封装一个静态方法,传入一个File对象,能够遍历其下的所有文件及文件夹的名称,包括子文件下的文件及文件,以及再深层次的文件夹中的。
      • package com.qut.day0311;
        
        import java.io.File;
        import java.io.IOException;
        import java.nio.file.Files;
        import java.nio.file.Paths;
        
        public class FileDemo {
        	
        	public static void traverse(File file) {
        		if(file.isFile()) {
        			return;
        		} else {
        			File[] arr = file.listFiles();
        			for(int i = 0; i < arr.length; i++) {
        				System.out.println(arr[i].getName());
        				traverse(arr[i]);
        			}
        		}
        		
        	}
        
        	public static void main(String[] args) throws IOException {
        		
        		File file = new File("f:/test");
        		file.mkdir();
        		System.out.println(file.getAbsolutePath());
        		new File(file, "1.txt").createNewFile();
        		new File(file, "2.txt").createNewFile();
        		new File(file, "3.txt").createNewFile();
        		File file1 = new File(file, "hello");
        		file1.mkdir();
        		new File(file1, "4.txt").createNewFile();
        		new File(file1, "5.txt").createNewFile();
        		
        		
        		//Files.copy(Paths.get("F:/test/1.txt"), Paths.get("F:/test/7.txt"));
        		traverse(file);
        	}
        }
        
    • NIO2
      • jdk7及以后具有的操作文件的特性
      • path对于目录的操作 Path Paths.get(String path) //返回字符串所指定的Path对象
      • Files对于文件或者目录进行删除,移动、复制等操作的工具类。
        • delete() 删除
        • copy() 复制
        • move() 转移
  • 数据流
    • 用来表示一串连续不断地数据,称为数据流
      • 按照留的方向分
        • 输入流
        • 输出流
      • 按照处理的单位来分
        • 字节流 以byte为单位,命名一般为XxxStream
        • 字符流 以char为单位,命名一般为XxxReader或XxxWriter
      • 按功能来分
        • 节点流
        • 处理流
      • 继承关系
        • InputStream
          • 输入字节流的父类,子类一般叫做XxxInputStream
        • OutputStream
          • 输出字节流的父类,子类一般叫做XxxOutputStream
        • Reader
          • 输入字符流的父类,子类一般叫做XxxReader
        • Writer
          • 输出字符流的父类,子类一般叫做XxxWriter
      • 字节输入流
        • 常用的方法
          • int read() 一次读取一个字节(byte)的数据,并且以int返回,如果没有数据可读,返回-1
          • intread(byte[] buffer) 把读到的数据放到buffer数组中,返回int数,表示真正读到的byte个数
          • int read(byte[] buffer,int offset, int len) 读取len个字节,然后存在数组buffer中,从offset的位置开始存。
          • void close() 关闭流
      • 字节输出流
        • FileOutputStream out = new FileOutputStream(name,true);//第二个参数如果是true,表示在文件原有的内容之后追加,不覆盖原内容。如果是false,则先清除文件原有的内容,再写入内容。如果不写第二个参数,则默认为false。
        • 常用方法
          • void write(byte[] buffer) 将字节数组的内容写入到输出流中
          • void write(byte buffer, int offset, int length) 将字节数组从offset开始,总共length个字节写到输出流中。
          • void flush() 刷新输出流,将输出流中的数据写到文件中去。
          • void close() 关闭流
      • try-with-rescource
        • jdk7的新特性,在使用流的时候,不需要开发者手动去关闭流,try-with-resource语法,可以系统自动关闭使用完的流。
        • try(流资源的声明;){
        • }catch(){
        • }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值