Map是映射的顶级接口
实现类:HashMap、Hashtable

HashMap
a.底层基于数组+链表来存储数据
b.不能重复且不能保证顺序恒久不变
c.允许存储null键和null值
d.默认的初始长度为16,默认的加载因子为0.75,默认扩容是在原来的基础上增加一倍
e.当给定初始容量(2n~2(n+1)),底层真实容量就是2^(n+1)值
f.异步式线程不安全的映射

Hashtable
a.最早的映射类
b.键和值都不能是null
c.默认初始容量是11,默认加载因子是0.75,默认扩容是在原来的基础上增加一倍再加1
d.指定初始容量为多少底层真实容量就为多少
e.同步式线程安全的映射

映射是集合吗?映射是映射,集合是集合

File

File类代表文件或者文件夹的类

package cn.tedu.file;import java.io.File;
import java.io.IOException;public class FileDemo1 {public static void main(String[] args) throws IOException {//代表文件类的对象//创建对象的过程中没有去检测路径信息是否存在//把路径信息放到对象身上File file=new File("D:\\a.txt");//新建文件//如果路径信息指定文件已经存在就会返回false//boolean b=file.createNewFile();////创建文件夹(多级)//boolean b=file.mkdirs();//删除文件--无论文件是否有内容都可以删除//只能删除空文件夹//删除内容不会进回收站直接删除boolean b=file.delete();//System.out.println(b);}
}package cn.tedu.file;import java.io.File;public class FileDemo2 {public static void main(String[] args) {//创建代表文件类的对象File file=new File("D:\\");//把当前文件夹下所有的信息列举出来//把当前文件夹下所有的信息(文件以及文件夹)当作成File类对象//放入到数组当中File[] fs=file.listFiles();//遍历数组/*for (File f:fs){System.out.println(f);}*///判断File对象是否是文件/文件夹System.out.println(file.isFile());System.out.println(file.isDirectory());}
}
package cn.tedu.file;import java.io.File;public class FileDemo3 {public static void main(String[] args) {//创建代表文件类的对象File file=new File("D:\\a.txt");//文件名+后缀名/文件夹名称//System.out.println(file.getName());//返回是当前的文件夹//System.out.println(file.getParent());////System.out.println(file.getPath());//1598336386592//从1970年1月1日0时0分0秒到现在的毫秒值//System.out.println(file.lastModified());//设置上次修改时间//file.setLastModified(1563215643);//System.out.println(file.length());}
}
package cn.tedu.file;import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;public class FileDemo4 {public static void main(String[] args) {//创建代表文件类的对象File file=new File("D:\\");//把D盘下含有数字的文件或者文件夹来进行输出//把过滤之后的file类对象返回到数组当中/*  File[] fs=file.listFiles(new FileFilter(){//重写方法---过滤guiz@Overridepublic boolean accept(File pathname) {//正则语法---匹配字符串中含有数字return pathname.getName().matches(".*\\d*");}});
*///File[] fs=file.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return name.matches(".*\\d*");}});//遍历数组for (File f:fs) {System.out.println(f);}}
}
package cn.tedu.file;import java.io.File;public class FileDemo5 {public static void main(String[] args) {//创建文件类的对象File file=new File("D:\\a.txt");//重命名//底层是由剪切来实现的boolean b=file.renameTo(new File("D:\\七夕.txt"));//System.out.println(b);}
}

练习
1.删除文件(递归)

package cn.tedu.file;import java.io.File;public class FileText {public static void main(String[] args) {//创建代表文件类对象File file=new File("D:\\a");//调用方法删除文件deleterFile(file);}public static void deleterFile(File file) {//判断是否是文件夹if(file.isDirectory()){//说明文件夹需要展开当前文件夹下所有信息//把当前文件夹下所有的信息(文件以及文件夹)当作成File类对象//放入到数组中File[] fs=file.listFiles();//遍历数组for (File f:fs){//递归调用deleterFile(f);}}//删除文件/空文件夹file.delete();}
}

IO流

本质是一套用于数据传输的机制
根据传输的方向(参照物—内存)
输入流:往内存来传入数据
输出流:从内存往外传输数据
根据传输的方式
字符流—传输字符形式数据
字节流—传输字节形式数据
四大基本流

根据数据存放/获取的位置
硬盘、内存、网络、外设设备

硬盘
字符流
给硬盘上.txt文件写入数据 文件 字符输出流—FileWriter

package cn.tedu.io.file;import java.io.FileWriter;
import java.io.IOException;public class FileWriterDemo1 {public static void main(String[] args) throws IOException {//创建文件字符输出流对象//创建对象过程中会检测路径信息是否存在如果不存在就新建空文件//如果指定的路径信息存在则创建新的空文件进行覆盖//为了保证输出流能往文件进行写入数据(之前有数据不会影响新的写入数据)FileWriter writer=new FileWriter("D:\\1.txt");////写出数据//底层为了提高和保证传输数据效率//提供缓冲区来传输数据并且要求存满了才进行传输//此时数据没有存满缓冲区就滞留在缓冲区数据丢失了writer.write("七夕快乐");//冲刷缓冲区//即使数据没有存满也会进行传输//防止数据滞留再缓冲区writer.flush();//关流//自动冲刷过程writer.close();//把流对象置为null(无用对象)writer=null;}
}

IO流中异常捕获
1.在try块外声明流对象赋值为null,在try块里进行真正的初始化
2.保证对象初始化成功之后才能关流
3.无论关流成功与否,流对象都要置为null让系统进行回收
4.如果关流操作失败发生在自动冲刷之前需要添加冲刷过程保证数据不会滞留在缓冲区

package cn.tedu.io.file;import java.io.FileWriter;
import java.io.IOException;public class FileWriterDemo2 {public static void main(String[] args) {//声明IO对象FileWriter writer=null;try {writer=new FileWriter("D:2.txt");//写出数据writer.write("abc");//4.手动冲刷writer.flush();} catch (IOException e) {e.printStackTrace();}finally {//2.判断流对象是否初始化成功if (writer!=null)try {writer.close();} catch (IOException e) {e.printStackTrace();}finally {//3.无论关流是否成功都要把流对象置为nullwriter=null;}}}
}
package cn.tedu.io.file;import java.io.FileWriter;
import java.io.IOException;public class FileWriteDemo3 {public static void main(String[] args) {//try-with-resources  jdk1.7出现的try (FileWriter writer=new FileWriter("D:\\3.txt")){writer.write("asf");}catch (IOException e){}}
}

Java学习 DAY18 Map、File、IO流相关推荐

  1. Java学习之路-day21 IO流02

    Java IO流 每日一句 1.字符流 1.1为什么会出现字符流 1.3字符串中的编码解码问题 1.4字符流写数据 1.5字符流读数据 1.6字符流用户注册案例 1.7字符缓冲流 1.8字符缓冲流特有 ...

  2. java学习日记21,IO流

    周二跑沙河开例会,晚上回来也在打王者,没怎么学习,就没记录了,今天继续坚持. File类 file,文件,java.IO.File类:文件和文件目录路径的抽象表示形式. File类可以对文件.文件夹进 ...

  3. 菜鸟学习笔记:Java提升篇6(IO流2——数据类型处理流、打印流、随机流)

    菜鸟学习笔记:Java IO流2--其他流 字节数组输入输出流 数据类型处理流 基本数据类型 引用类型 打印流 System.in.System.out.System.err 随机流RandomAcc ...

  4. 菜鸟学习笔记:Java提升篇5(IO流1——IO流的概念、字节流、字符流、缓冲流、转换流)

    菜鸟学习笔记:Java IO流1--IO流的概念.字节流.字符流.缓冲流.转换流 IO流的原理及概念 节点流 字节流 文件读取 文件写出 文件拷贝 文件夹拷贝 字符流 文件读取 文件写出 处理流 缓冲 ...

  5. Java基础学习(二十七)之IO流

    1. File 1.1 File类概述和构造方法(myFile中的com.itheima_01中的FileDemo01) File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对 ...

  6. Stoker的Java学习之字节流与字符流

    Java学习之字节流与字符流 一. 字节流 字节流是在java.io包中操作文件内容的一大类,字节流将文字图片音频等文件转换成字节,进行数据传输. 在字节流中输出数据主要是使用OutputStream ...

  7. Java学习之字节流和字符流的转化

    Java学习之字节流和字符流的转化 1.字节流转换成字符流 输入字节流转为字符流需要用到InputStreamReader的构造方法: InputStreamReader(InputStream in ...

  8. Java裁剪音乐,利用IO流

    ** Java裁剪音乐,利用IO流 ** 主方法 public static void main(String[] args) throws IOException {//输入流对象,路径要裁剪文件路 ...

  9. java学习笔记30(IO :缓冲流)

    缓冲流: 读取数据大量的文件时,读取的速度慢,java提供了一套缓冲流,提高IO流的效率: 缓冲流分为字节缓冲流和字符缓冲流: 字节输入缓冲流和字节输出缓冲流如下: package com.zs.De ...

  10. java 删除指定文件夹和下面所有文件_java——File IO流

    1.File(掌握) (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件 (2)构造方法 A:File file = new File("e:demoa ...

最新文章

  1. 优先队列 堆实现 java
  2. 文本编辑器中命令行参数的应用
  3. F110报错:Company codes **/** do not appear in proposal ***; correct
  4. Visual Studio 32位64位的问题和如何编译32位64位工程的问题
  5. 谈Elasticsearch下分布式存储的数据分布
  6. Android消息队列图片记录
  7. python设置字体_Python实现文字特效的方法
  8. pppoe服务器虚拟机,Hyper-V 批量建立虚拟机自动改IP并配置PPPOE拨号
  9. JDBC+Servlet+JSP实现基本的增删改查(简易通讯录)
  10. android 大牛播放组件,大牛直播Android播放端SDK说明
  11. PHP导出excel文件的多种方式
  12. 文档数据库mongodb与列式数据库hbase详细比较
  13. PWM驱动sg90电机
  14. 打印时候复选框勾选不见了_使用JS实现分页打印(复选框勾选打印)
  15. 【转】win7 旗舰版激活密钥
  16. 类似支付宝密码框输入
  17. 如何在 Ubuntu 和其他 Linux 发行版中启动、停止和重启服务
  18. CSS3篮球场热力区域图
  19. 如何安装cygwin
  20. 20-硬链接与软链接

热门文章

  1. HaaS低功耗IP Camera解决方案
  2. 自制狂拍灰太狼小游戏(HTML+CSS+JavaScript)
  3. 计算机端口 串口 并口是什么,那些年我们使用的电脑串行,并行接口,你们是否还记得?...
  4. 威金Worm.Viking病毒分析及处理
  5. 用php写出一个网站的模板,25 个 PHP 的 Web 开发程序网站模板
  6. 物联网通信协议-modbus
  7. 风力摆控制系统设计经验总结
  8. 防止撤回插件 Android,微信防撤回插件
  9. 以接口请求的方式,解决移动端页面中字体文件过大的问题
  10. Python爬虫实战之爬取链家广州房价_01简单的单页爬虫