黑马程序员——Java IO总结(三)
2011-12-22 20:09
357 查看
黑马程序员——Java IO总结(三)
---------------------- android培训、java培训、期待与您交流!
----------------------
一、File类
l 用来将文件或文件夹封装成对象
l 方便对文件或文件夹的属性信息进行操作
l File对象可以作为参数传递给流的构造函数
l 了解File类的常用方法
boolean createNewFile(): 在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象创建文件时,若文件存在,会覆盖
boolean mkdir(): 创建目录
boolean mkdirs(): 创建多级目录
boolean delete(): 删除失败返回false
void deleteOnExit(): 程序退出时删除
boolean exist(): 判断文件是否存在
boolean isDirectory(): 判断是否为目录
boolean isFile():判断是否为文件
判断File对象是否为文件或目录时,一定要先判断Fild对象是否存在
String getName()
String getPath()
String getAbsolutePath()
String getParent()
l 实例:列出指定目录下的所有文件或文件夹,包含子目录的内容。
l 实例:删除带内容的目录
l 实例:将一个指定目录下的Java文件的绝对路径,存储到一个文本文件中
二、Properties类
Properties是HashTable的子类,也就是说它具务Map集合的特点。而且它里面存储的键值对都有是字符串。Properties类是集合中与IO技术相结合的集合容器。它的特点:可以用于键值对形式的配置文件。
l 实例:合并流
l 实例:文件分割与合并
---------------------- android培训、java培训、期待与您交流!
----------------------
详细请查看:http://edu.csdn.net/heima
---------------------- android培训、java培训、期待与您交流!
----------------------
一、File类
l 用来将文件或文件夹封装成对象
l 方便对文件或文件夹的属性信息进行操作
l File对象可以作为参数传递给流的构造函数
l 了解File类的常用方法
boolean createNewFile(): 在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象创建文件时,若文件存在,会覆盖
boolean mkdir(): 创建目录
boolean mkdirs(): 创建多级目录
boolean delete(): 删除失败返回false
void deleteOnExit(): 程序退出时删除
boolean exist(): 判断文件是否存在
boolean isDirectory(): 判断是否为目录
boolean isFile():判断是否为文件
判断File对象是否为文件或目录时,一定要先判断Fild对象是否存在
String getName()
String getPath()
String getAbsolutePath()
String getParent()
l 实例:列出指定目录下的所有文件或文件夹,包含子目录的内容。
import java.io.File; // 深度优先搜索 DFS public class ListFiles { public static void main(String[] args) { listFiles(new File("c:\\windows")); } public static void listFiles(File dir) { File[] files = dir.listFiles(); for (File file : files) { System.out.println(file); if(file.isDirectory()) listFiles(file); } } }
l 实例:删除带内容的目录
import java.io.File; public class RemoveDir { public static void main(String[] args) { removeDir(new File("d:/bb")); } public static void removeDir(File dir) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) removeDir(file); else System.out.println("【文 件】" + file.toString() + ": " + file.delete()); } System.out.println("【文件夹】" + dir.toString() + ": " + dir.delete()); } }
l 实例:将一个指定目录下的Java文件的绝对路径,存储到一个文本文件中
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class JavaFileList { public static void main(String[] args) { File dir = new File("F:\\Code\\Java\\heiMa"); List<File> list = new ArrayList<File>(); javaFileList(list, dir); write2File(list); } public static void javaFileList(List<File> list, File dir) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) javaFileList(list, file); else { if (file.getName().endsWith(".java")) list.add(file); } } } public static void write2File(List<File> list) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("JavaFiles.txt")); for (File file : list) { bw.write(file.getAbsolutePath()); System.out.println(file.getAbsolutePath()); bw.newLine(); bw.flush(); } } catch (IOException e) { throw new RuntimeException(e); } finally { try { if (bw != null) bw.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }
二、Properties类
Properties是HashTable的子类,也就是说它具务Map集合的特点。而且它里面存储的键值对都有是字符串。Properties类是集合中与IO技术相结合的集合容器。它的特点:可以用于键值对形式的配置文件。
l 实例:合并流
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.SequenceInputStream; import java.util.Vector; public class SequenceStreamDemo { public static void main(String[] args) throws IOException { Vector<FileInputStream> v=new Vector<FileInputStream>(); v.add(new FileInputStream("d:\\1.txt")); v.add(new FileInputStream("d:\\2.txt")); v.add(new FileInputStream("d:\\3.txt")); SequenceInputStream sis=new SequenceInputStream(v.elements()); FileOutputStream fos=new FileOutputStream("d:\\4.txt"); byte[] b=new byte[1024]; int len=0; while((len=sis.read(b))!=-1){ fos.write(b, 0, len); } fos.close(); sis.close(); } }
l 实例:文件分割与合并
import java.io.*; import java.util.*; public class SplitFile { public static void main(String[] args) throws IOException { // splitFile(); mergeFile(); } public static void mergeFile() throws IOException { List<InputStream> list = new ArrayList<InputStream>(); for (int i = 1; i < 4; i++) { list.add(new FileInputStream("d:\\split\\" + i + ".part")); } final Iterator<InputStream> it = list.iterator(); Enumeration<InputStream> e = newEnumeration<InputStream>() { @Override public InputStream nextElement() { return it.next(); } @Override public boolean hasMoreElements() { return it.hasNext(); } }; SequenceInputStream sis = new SequenceInputStream(e); FileOutputStream fos = new FileOutputStream("d:\\merge.bmp"); byte[] b = new byte[1024 * 1024]; int len = 0; while ((len = sis.read(b)) != -1) { fos.write(b, 0, len); } sis.close(); fos.close(); } public static void splitFile() throws IOException { FileInputStream fis = new FileInputStream("d:\\1.bmp"); FileOutputStream fos = null; byte[] b = new byte[1024 * 1024]; int len = 0; int count = 1; while ((len = fis.read(b)) != -1) { fos = new FileOutputStream("d:\\split\\" + count++ + ".part"); fos.write(b, 0, len); fos.close(); } fis.close(); } }
---------------------- android培训、java培训、期待与您交流!
----------------------
详细请查看:http://edu.csdn.net/heima
相关文章推荐
- 黑马程序员 知识点总结-Java IO(四)转换流、打印流
- 黑马程序员_java IO技术学习总结
- 黑马程序员_Java第18天知识总结_System类_Runtime类_Date_Calendar_Math_Random_InputStream_OutputStream_IO异常的处理
- 黑马程序员 14 Java基础教学 - 14 - IO体系总结01
- 黑马程序员——自学总结(五)Java IO技术之File类
- 黑马程序员——Java学习总结:IO常用方法练习
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
- 黑马程序员——自学总结(四)Java IO技术之流对象
- 黑马程序员_java的IO流(对第十八课IO理解以及文件读取和字符写入总结)
- 黑马程序员 知识点总结-Java IO(六)File
- 黑马程序员_java IO总结
- 黑马程序员:Java基础总结----IO(Input Output)流概述
- 黑马程序员_java_IO总结
- 黑马程序员--java学习之io总结
- 黑马程序员 ----- Java基础 之 IO 基本规律总结 Day05
- 【黑马程序员】javaIO学习和总结
- 黑马程序员 知识点总结-Java IO(一)
- 黑马程序员 知识点总结-Java IO(五)字符编码
- 黑马程序员-JavaIO总结
- 黑马程序员—java技术blog—第一篇 IO概述及字节流总结