黑马程序员——Java IO总结(三)
来源:互联网 发布:java utf8编码转换gbk 编辑:程序博客网 时间:2024/05/21 19:33
黑马程序员——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 实例:列出指定目录下的所有文件或文件夹,包含子目录的内容。
import java.io.File;// 深度优先搜索 DFSpublic 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基础IO流总结(三)
- 黑马程序员——Java基础——IO(三)
- 黑马程序员——JAVA IO输入输出(三)
- 黑马程序员——Java基础---IO流(三)
- 黑马程序员——Java IO流(三)
- 黑马程序员——Java基础--IO(三)
- 黑马程序员——Java基础--------IO流(三)
- 黑马程序员 知识点总结-Java IO(三)字节流
- 黑马程序员-----十三、java基础IO流技术总结三
- 黑马程序员——Java IO总结(一)
- 黑马程序员——Java IO总结(二)
- 黑马程序员——java编程IO总结
- 黑马程序员——java-IO流概念总结
- 黑马程序员——Java学习总结 IO部分
- 黑马程序员——Java IO总结一
- 黑马程序员——Java IO总结二
- 新编Base64
- QT 按键1
- 项目规划管理 - 7 (全文完)
- qt 按键0
- linux shell 2
- 黑马程序员——Java IO总结(三)
- 关于u-boot中的.balignl 16,0xdeadbeef的理解
- 使用BASE64压缩byte[]到GSON
- 双网卡虚拟机设置
- nfs安装
- json安全输出解决方案
- 使用外部数据创建DirectFB Surface
- javascript调用c#生成的dll
- 开通csdn的博客啦 java 自学之路