该篇博客目录

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类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)相关推荐

  1. Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解。

    Java基础之匿名内部类,匿名内部类是什么?为什么要用匿名内部类,匿名内部类详解. 什么是匿名内部类? 顾名思义 匿名 就是没有名字,一个没有名字的内部类,称为匿名内部类. 下面先看一个例子,比如说你 ...

  2. Java基础语法十二 泛型程序设计

    1 意义 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 常见应用 : ArrayList 2 K T V E ? object等的含义 类型变量使用大写形式 E – Element ( ...

  3. python接口自动化(四十二)- 项目架构设计之大结局(超详解)

    简介 这一篇主要是将前边的所有知识做一个整合,把各种各样的砖块-模块(post请求,get请求,logging,参数关联,接口封装等等)垒起来,搭建一个房子.并且有很多小伙伴对于接口项目测试的框架一筹 ...

  4. 【Java基础】前端传一个数组或者集合后台怎么接受(案例详解)

    [辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...

  5. Java基础(十二)

    合成设计模式的引出 引用传递实际应用 案例一(类关联结构) 有的人有一辆汽车,有些人坐公交:要求通过面向对象的设计来解决实现以上的这种关系转换. class Car{private String na ...

  6. 重学java基础第二十二课:IDEA安装

  7. 重学java基础第十二课:计算机语言发展史

  8. Java基础学习总结(37)——Java23中设计模式(Design Patterns)详解

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. 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 ...

最新文章

  1. ASP.NET页面借助IFrame提交表单数据所遇到的问题
  2. RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础
  3. ibatis 的 This SQL map does not contain a MappedStatement的错误
  4. 波卡链Substrate (1)生态介绍
  5. 列举学完Java开发后能做的一些事
  6. python十分钟教程_简洁的十分钟Python入门教程
  7. (十一)python3 只需3小时带你轻松入门——面向对象
  8. 第8章 Service基础Activity与Service绑定
  9. IT人不要一辈子靠技术生存--读后感
  10. 请允许我用2019年11种主流编程语言,祝祖国70华诞快乐!
  11. 如何找一个程序员做男朋友?
  12. Step 1: 盲打第三天
  13. python normalize函数_opencv归一化函数normalize详解
  14. 在实体引用中,实体名称必须紧跟在 ‘’后面
  15. IP地址、子网掩码、网关、DNS的关系及sicket的常识
  16. 部署“极客猿导航geek-navigation遇到的问题”——作者没说但你就会遇到(1)
  17. winrar介绍,下载(52pojie)
  18. systemvue雷达仿真实验
  19. 盘点微信中被隐藏的实用功能
  20. STM32F1芯片包

热门文章

  1. 收藏文章《不要Google,要Stumble!》
  2. linux内核对nsm配置,H3C SecPath系列安全产品 NSQM1NSM 单板手册(V1.02)
  3. 【Y忍冬草】各类消息框
  4. 【图像识别】【论文】残疾人手语交流辅助系统手语识别与翻译基于数据手套的虚拟手的实现
  5. 加入我们--YKsuit 雅库官网 -男士品牌西服,网上购物中心
  6. Latex 给一段文字加边框
  7. 简单测试OPA627运放真伪的方法
  8. CCNP知识点总结——BGP
  9. 汽车行业SAP性能分析解决方案
  10. 把一件事情做到极致,胜过你做一万件平庸的事。