Java基础第十三天总结

HashSet(是由HashMap实现的)和HashMap(存入KV对)存储机制一样,查询速度快。

HashMap实现的map map

都没有线程安全性,

HashSet实现的Set接口 Set实现的Collection

HashMap实现的Map

Collection与Map是同级别的。

文件复制 用到缓冲区

package com.test;

import java.io.FileReader;

import java.io.FileWriter;

public class CopyFileDemo {

public static void main(String[] args) {

String srcFile="e:/aa.txt";

String tarFile="e:/bb.txt";

FileReader reader=null;

FileWriter writer=null;

try {

//读取src文件的reader

reader=new FileReader(srcFile);

//写入tar文件的fileWriter

writer=new FileWriter(tarFile);

//定义字符缓冲区

char[] buf=new char[1024];

int len=0;

while((len=reader.read(buf))!=-1){

writer.write(buf, 0, len);

}

//操作完毕之后要关流

} catch (Exception e) {

// TODO: handle exception

}finally{

try {

if(reader!=null){

reader.close();

}

if(writer!=null){

writer.close();

}

} catch (Exception e2) {

}

}

}

}

行分割符在java中可以通过 方法得到

系统属性名是line.separator

不同平台的行分隔符是不同的。

windows:\r\n

System.getProperty("line.separator");//执行系统属性名

FileWriter:没有缓冲区功能,本身没有新增任何功能,继承是的outputStreamWriter,

outputStreamWriter继承的是Writer

writer(){

sun.nio.cs.StrenamEncoder.write(....);

}

BufferedWriter:对Writer进行了包装,里面定义缓冲区,提供官入单个字符

char[] String的效率

提高写入效率。

等级树结构object-Writer--BufferedWriter

close()方法:flushBuffer();

flushBuffer();清理缓冲区,将缓冲区数据写入目的地址。

BufferedReader

继承关系树:object-->Reader-->BufferedReader-->LineNumberReader

FileReader

继承关系树:object-->Reader-->InputStreamReader-->FileReader

read(){

InputStreamReader.read(){

}

}

缓存区的引入是为了避免对物理文件的频繁读取与写入

时间: 2024-10-05 22:04:25

Java基础第十三天总结的相关文章

java基础第十三天IO接口

1.阐述BufferedReader和BufferedWriter的工作原理, 是否缓冲区读写器的性能恒大于非缓冲区读写器的性能,为什么,请举例说明? 答: BufferedReader:从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取: BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符.驻足和字符串的高效写入:缓冲区读写器的性能恒大于非缓冲区读写器的性能. 2.阐述HashSet与HashMap的异同. 答: HashSet:HashSet

Java基础--第十三天

讲课流程: API的使用: 1,Scanner的应用 两次录入:  int -----int : String --- String:\r\n是结束标识符 String --- int: int ----- String:不正常[2]   与String --- String有点理解不过来 1,sc重新赋值: 2,两次录入String类型,对第一个进行转换 * /* \r\n是在String中是结束标识符:但是在录入的开始并没做换行符录入的区别: 先输int,\r\n是结束标识符,但是没有纳入i

Java基础第十三天总结——面向对象(中)

一.多态性 二.object类的使用 三.包装类的使用 /*----------------分割线----------------------*/ 一.多态性 子类继承父类 若子类重写父类方法,就意味着子类里定义的方法彻底覆盖了父类里的同名方法,系统将不可能把父类里的方法转移到子类中. 对于实力变量则不存在这样的现象,即使子类里定义了与父类完全相同的实力变量,这个实例变量依然不可能覆盖父类中定义的实例变量. 二.object类的使用 object类是所有Java类的根父类 如果在类的声明中未使用

Java基础--第二十三天

多线程:         多条执行单元 进程:正在运行的应用程序 线程:进程的执行单元,一条执行路径 迅雷下载,360清理 多线程程序实现: 线程依赖于进程存在,Thread类 子类继承 子类重写run方法 调用strart(),让线程启动,调用run()方法 同一个线程对象连续两次启动,报错:表示该线程状态有问题 getName()方法:标志不同线程,获取线程名称 setName():更改线程名字 线程随机性: 程序执行,抢占CPU资源,CPU在多个程序间切换. 第二种实现: 创建类,实现Ru

夯实Java基础系列目录

学习Java语言也有很长一段时间了,但是之前只是学习了Java的基础部分,对于什么IO流.多线程之类的只学习了一点,并没有过多的去学习,所以随着后面学习的深入,发现没有这部分知识更加的重要,所以现在我又重新来复习一遍Java基础,努力打好自己的Java基础,在这里我要说句话(其实一万句都不够):Java基础非常重要!Java基础非常重要!Java基础非常重要! 一.Java基础 1.夯实Java基础(一)--数组 2.夯实Java基础(二)--面向对象之封装 3.夯实Java基础(三)--面向对

Java基础重点指南

Java基础重点指南 每个人都有自己的学习方法,下面是我学完Java后总结的一些要点: 一:(了解)Java诞生于1995年,由Sun公司开发.它把源代码编译成“中间码”,然后通过“Java虚拟机”把中间码“翻译”成机器码,再在本机上运行.Java有3个版本(Java SE,Java EE,Java ME),SE用于桌面程序开发,也是Java基础,EE用于企业式开发(如网站等),ME用于嵌入式开发(如掌上电脑,移动通讯开发等).通过 Java 可以做很多,但前提是要深入学习. 二:Java 编译

JAVA基础篇NO1--环境变量的配置及命名规则

标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备       存储器:外存(硬盘) 内存 软件:系统软件 应用软件   系统软件:windows Linux DOS IOS Android Unix macOS           裸机:没有安装操作系统   应用软件:QQ Office MD web APP 二:软件开发与计算机语言 什么是软件?按照特定的组织顺序的数据和指令的集合 计算语言分类 :机器语言(二进制0和1) 汇编

微冷的雨Java基础学习手记(一)

使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要进行验证 02.查看帮助文档和搜索引擎的使用 借助网络上的Blog文章 03.不要急功近利 不要抱着速成的想法,否则必然走弯路学习编程不是一蹴而就的事情付出的成本高,才能有一个高薪的收入 04.不要浮躁 不要什么都学,只学有用的 浮躁的程度和技术水平成反比的走自己的路,让别人去浮躁去吧! 每天问问自

“全栈2019”Java第四十三章:封装

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第四十三章:封装 下一章 "全栈2019"Java第四十四章:继承 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组". 全栈工程师学习计划