JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
该篇博客目录
1、Map接口及其常用实现类(HashMap、Hashtable)
2、File类(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
一、Map接口及其常用实现类(HashMap、Hashtable)
1、Map接口保存形式(键值对)
key—>value的方式保存,所以既需要保存key也需要保存value
2、Map常用实现类
- HashMap:无序存放,key不允许重复(key唯一)
- Hashtable:无序存放,key不允许重复(key唯一)
3、常用方法,参考api即可,这里我举一个常用的Demo
package hhh;import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;public class my_hello_world {public static void main(String[] args) {// TODO Auto-generated method stubMap<String,String> m=new HashMap();//添加键值对m.put("key1", "value1");m.put("key2", "value2");m.put("key3", "value3");m.put("key4", "value4");//获得key1的内容String str=m.get("key1");System.out.println(str);//判断键或值是否存在if(m.containsKey("key1")){System.out.println("key1存在");}else {System.out.println("key1不存在");}if(m.containsValue("value1")){System.out.println("value1存在");}else {System.out.println("value1不存在");}//得到全部的键或值keySet方法(获得键返回类型是Set,获得值返回类型是Collection)//获得键Set<String> s=m.keySet();Iterator<String> i=s.iterator();while(i.hasNext()){System.out.println(i.next());}//获得值Collection<String> p=m.values();Iterator<String> u=p.iterator();while(u.hasNext()){System.out.println(u.next());}}
}
二、File类
1、File类概述
文件和目录路径名的抽象表示形式。
2、File类对文件创建、删除、重命名
a、需要用到的方法
创建File类对象方法
exists():判断文件是否存在
- renameTo(File dest);:重命名文件,参数是新文件名创建的对象
- getName();:得到文件名属性
- isFile():是否是标准文件名
- isDirectory():是否是标准目录
- delete();:删除文件
- createNewFile();:创建文件
b、Demo
package HelloFile;import java.io.File;
import java.io.IOException;public class testFile {public static void main(String[] args) {// TODO Auto-generated method stubFile f=new File("hello.txt");if(f.exists()){File newf=new File("newfile.txt");//文件夹结构必须处于同一个分区f.renameTo(newf);System.out.println(f.getName());if(f.isFile()){System.out.println("是标准文件名");}if(f.isDirectory()){System.out.println("是目录");}f.delete();System.out.println("文件删除成功");}else {System.out.println("文件不存在");try {f.createNewFile();System.out.println("文件已成功创建");} catch (IOException e) {// TODO Auto-generated catch blockSystem.out.println("文件无法创建");}}}}
2、File类文件属性读取
a、需要用到的方法
- exists():文件是否存在
- getName():读取文件名
- getPath():读取文件路径
- getAbsolutePath():读取文件绝对路径
- new File(f.getAbsoluteFile().getParent()):获取文件父级路径
- length():读取文件大小,按字节计算
- isHidden():判断文件是否被隐藏
- canRead():判断文件是否可读
- canWrite():判断文件是否可写
- isDirectory():判断是否为文件夹
b、Demo
package HelloFile;import java.io.File;public class HelloFile2 {public static void main(String[] args) {// TODO Auto-generated method stubFile f=new File("fi.txt");
// 判断文件是否存在System.out.println("判断文件是否存在:"+f.exists());
// 读取文件名称System.out.println("读取文件名称:"+f.getName());
// 读取文件路径System.out.println("读取文件路径:"+f.getPath());
// 读取文件绝对路径System.out.println("读取文件绝对路径:"+f.getAbsolutePath());
// 获取文件父级路径System.out.println("获取文件父级路径"+new File(f.getAbsoluteFile().getParent()));
// 读取文件大小System.out.println("读取文件大小:"+f.length()+"byte");//按字节计算,长整型
// 判断文件是否被隐藏System.out.println("判断文件是否被隐藏:"+f.isHidden());
// 判断文件是否可读System.out.println("判断文件是否可读:"+f.canRead());
// 判断文件是否可写System.out.println("判断文件是否可写:"+f.canWrite());
// 判断文件是否为文件夹System.out.println("判断文件是否为文件夹:"+f.isDirectory());}}
3、File类文件属性设置
a、需要用到的方法
- setWritable(boolean);将文件设为可写//true为可写,false为不可写
- setReadable(boolean);将文件设为可读//true为可读,false为不可读
- setReadOnly();将文件设为只读
b、Demo
package HelloFile;import java.io.File;public class helloFile3 {public static void main(String[] args) {// TODO Auto-generated method stubFile f=new File("test.file");if(f.exists()){
// 将文件设为可写//true为可写,false为不可写f.setWritable(true);
// 将文件设为可读//true为可读,false为不可读f.setReadable(true);
// 将文件设为只读f.setReadOnly();}}}
4、File类实现遍历文件夹
a、需要用到的方法
- isDirectory():是否是文件夹
- listFiles():包含了当前目录下的子文件和子文件夹,返回的是File对象的数组
b、Demo
package HelloFile;import java.io.File;public class hf4 {public static void main(String[] args) {// TODO Auto-generated method stubPrintFile(new File("F:\\java\\hello_JAVA"),1);}public static void PrintFile(File dir,int tab){//判断是否是一个文件夹if(dir.isDirectory()){File obj[]=dir.listFiles();//包含了当前目录下的子文件和子文件夹,返回的是File对象的数组for(int i=0;i<obj.length;i++){for(int j=0;j<tab;j++){System.out.print("|--");}System.out.println(obj[i].getName());//如果是文件夹,则进入该文件夹继续输出if(obj[i].isDirectory()){PrintFile(obj[i],tab+1);//打印obj[i]自己内部的元素}}}}}
5、File类实现文件的读写
a、需要用到的方法
文件读取(File f=new File(“fi.txt”);)
- FileInputStream fis=new FileInputStream(f);创建文件输入流
- InputStreamReader isr=new InputStreamReader(fis);获取文件输入流后,将输入流包装成InputStreamRead,是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。有些时候还有一个参数是”UTF-8”,根据实际而定
- BufferedReader br=new BufferedReader(isr);使用BufferedRead,从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
- readLine():读取内容
- close();:关闭文件,关闭文件顺序:先打开的后关闭,后打开的先关闭
文件写入(File f2=new File(“newfi.txt”);)
- FileOutputStream fos=new FileOutputStream(f2);文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。如果文件不存在,FileOutputStream会创建出来
- OutputStreamWriter osw=new OutputStreamWriter(fos);OutputStreamWriter 是字符流通向字节流的桥梁
- BufferedWriter bw=new BufferedWriter(osw);将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
b、文件读写Demo
package HelloFile;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;public class hf5 {public static void main(String[] args) {/** * 文件的读取* * */File f=new File("fi.txt");if(f.exists()){System.out.println("fi.txt文件存在");try {//创建文件输入流FileInputStream fis=new FileInputStream(f);//获取文件输入流后,将输入流包装成InputStreamRead,是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符InputStreamReader isr=new InputStreamReader(fis);//字节向字符转换的时候需要编码utf-8//使用BufferedRead,从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。BufferedReader br=new BufferedReader(isr);String line;while((line=br.readLine())!=null){System.out.println(line);}//当读取内容为空之后需要关闭当前的输入流(先打开的后关闭,后打开的先关闭)br.close();isr.close();fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * 文件的写入* * */try {File f2=new File("newfi.txt");//文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。如果文件不存在,FileOutputStream会创建出来FileOutputStream fos=new FileOutputStream(f2);//OutputStreamWriter 是字符流通向字节流的桥梁OutputStreamWriter osw=new OutputStreamWriter(fos);//将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。BufferedWriter bw=new BufferedWriter(osw);bw.write("hello");bw.close();osw.close();fos.close();System.out.println("写入完成");} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)相关推荐
- Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。
Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解. 什么是匿名内部类? 顾名思义 匿名 就是没有名字,一个没有名字的内部类,称为匿名内部类. 下面先看一个例子,比如说你 ...
- Java基础语法十二 泛型程序设计
1 意义 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 常见应用 : ArrayList 2 K T V E ? object等的含义 类型变量使用大写形式 E – Element ( ...
- python接口自动化(四十二)- 项目架构设计之大结局(超详解)
简介 这一篇主要是将前边的所有知识做一个整合,把各种各样的砖块-模块(post请求,get请求,logging,参数关联,接口封装等等)垒起来,搭建一个房子.并且有很多小伙伴对于接口项目测试的框架一筹 ...
- 【Java基础】前端传一个数组或者集合后台怎么接受(案例详解)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- Java基础(十二)
合成设计模式的引出 引用传递实际应用 案例一(类关联结构) 有的人有一辆汽车,有些人坐公交:要求通过面向对象的设计来解决实现以上的这种关系转换. class Car{private String na ...
- 重学java基础第二十二课:IDEA安装
- 重学java基础第十二课:计算机语言发展史
- Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)
文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...
最新文章
- ASP.NET页面借助IFrame提交表单数据所遇到的问题
- RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础
- ibatis 的 This SQL map does not contain a MappedStatement的错误
- 波卡链Substrate (1)生态介绍
- 列举学完Java开发后能做的一些事
- python十分钟教程_简洁的十分钟Python入门教程
- (十一)python3 只需3小时带你轻松入门——面向对象
- 第8章 Service基础Activity与Service绑定
- IT人不要一辈子靠技术生存--读后感
- 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
- 如何找一个程序员做男朋友?
- Step 1: 盲打第三天
- python normalize函数_opencv归一化函数normalize详解
- 在实体引用中,实体名称必须紧跟在 ‘’后面
- IP地址、子网掩码、网关、DNS的关系及sicket的常识
- 部署“极客猿导航geek-navigation遇到的问题”——作者没说但你就会遇到(1)
- winrar介绍,下载(52pojie)
- systemvue雷达仿真实验
- 盘点微信中被隐藏的实用功能
- STM32F1芯片包