JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
2018-02-02 21:19
1401 查看
该篇博客目录
1、Map接口及其常用实现类(HashMap、Hashtable)2、File类(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
一、Map接口及其常用实现类(HashMap、Hashtable)
1、Map接口保存形式(键值对)
key—>value的方式保存,所以既需要保存key也需要保存value2、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 stub Map<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.v 4000 alues(); 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 stub File 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 block System.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 stub File 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 stub File 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 stub PrintFile(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 block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.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 block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 文件的打开、复制、写入、创建、删除、获取设置 文件属性 查找文件 遍历文件夹等14.4.26
- Java创建文件和文件夹、文件属性的读取、文件属性的设置
- JAVA基础再回首(二十)——File类概述、创建、删除、重命名、判断、获取、文件名称过滤器
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- [导入]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- java实现读取、删除文件夹下的文件
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
- Java笔记之io——递归创建与删除多层文件夹,字符流实现文件复制
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Java 基础【12】 文件(文件夹) 创建和删除
- [导入]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- [转]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(一)
- java实现对hdfs文件系统的上传,下载,删除,创建文件夹的操作演示
- Asp.Net_文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)