Java I/o复习与总结 Dome 一
2014-01-13 12:57
106 查看
一、File类
File类是File类是java.io包中唯一处理磁盘文件和目录的类。它提供的方法都是与平台无关的,
通过使用File类提供各种方法能够创建、删除文件和目录,或者获取磁盘上指定的文件和目录的相关信息。
运行结果:
二、字节流
计算机中的数据都是以字节为单位进行处理的,这类的数据保存文件也成为“二进制文本”,在Java中对这些文本的操作就是要使用Java的字节流对象。
InputStream和OutputStream分别是输入与输出字节流,它们都是抽象类型的,都不能实例化,它们在I/O包中的顶层,作为了众多字节流的父类。
Java中的字节流有很多,这是我写的几个常用的字节流Demo.
FileInputStream/FileOutputStream
FileInputStream与FileOutputStream 被称为文件流,是最常见的字节流。用于对磁盘文件的读写操作。
* File类不只能创建、删除、获取文剪信息,但是不能打开和读写文件。FileInputStream与FileOutoutStream就是用于读写文件的
* FileInputStream 的构造方法
* FileInputStream fis = new FileInputStream("c:/abc");
File file = new File("c:/abc");
FileInputStream fis = new FileInputStream(file);
为了简化常用:
FileInputStream fis = new FileInputStream(new File("c:/abc"));
Demo:
FileOutputStram
执行结果:
已经吧Demo.txt中的内容复制到了Demo2.txt中!!
已经hello world写入到了文件C:/abc/Demo3.txt中
File类是File类是java.io包中唯一处理磁盘文件和目录的类。它提供的方法都是与平台无关的,
通过使用File类提供各种方法能够创建、删除文件和目录,或者获取磁盘上指定的文件和目录的相关信息。
package com.tai.io; import java.io.File; import java.io.FileFilter; import java.io.IOException; public class FileDemo { /** * File类是java.io包中唯一处理磁盘文件和目录的类。它提供的方法都是与平台无关的, * 通过使用File类提供各种方法能够创建、删除文件和目录,或者获取磁盘上指定的文件和目录的相关信息。 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { File file = new File("E:/文件夹"); if(file.mkdir()) { System.out.println("文件夹已创建!"); } File file2 = new File("E:/文件夹/文件.txt"); if(file2.createNewFile()) { System.out.println("文件已经创建!"); } getInfor(file2); if(file2.delete()) { System.out.println("文件已删除!"); } File Dir = new File("C:"+File.separator+"abc");//separator 文件分割符这样写便于代码跨平台,更加健壮! fFilter(Dir); } /* *获取相关信息 */ private static void getInfor(File file) { System.out.println("文件名"+file.getName()); System.out.println("文件父路径"+file.getParent()); System.out.println("文件的绝对路径"+file.getAbsolutePath()); System.out.println("所在磁盘的大小"+file.getTotalSpace()/(1024*1024*1024)+"GB"); System.out.println("所在磁盘的可用空间"+file.getUsableSpace()/(1024*1024*1024)+"GB"); System.out.println("是否是文件"+file.isFile()); System.out.println("是否是文件夹"+file.isDirectory()); System.out.println("是否是隐藏文件"+file.isHidden()); System.out.println("是否可读"+file.canRead()+" 是否可写"+file.canWrite()+" 是否可执行"+file.canExecute()); } /* * FilenameFilter 过滤接口 此处用内部类实现FileFilter的accept()方法 * FilenameFilter和FileFilter类似,也提供文件过滤功能 * 性能上FilennameFilter较FileFilter效率稍高 */ private static void fFilter(File file) { File[] files = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if(pathname.isFile()&&pathname.getName().endsWith(".txt")) { return true; } return false; } }); System.out.println("该目录下的所有文本文件"); for(File f:files) { System.out.println(f.getName()); } } }
运行结果:
文件夹已创建! 文件已经创建! 文件名文件.txt 文件父路径E:\文件夹 文件的绝对路径E:\文件夹\文件.txt 所在磁盘的大小84GB 所在磁盘的可用空间31GB 是否是文件true 是否是文件夹false 是否是隐藏文件false 是否可读true 是否可写true 是否可执行true 文件已删除! 该目录下的所有文本文件 b.txt 新建文本文档 (2).txt 新建文本文档.txt
二、字节流
计算机中的数据都是以字节为单位进行处理的,这类的数据保存文件也成为“二进制文本”,在Java中对这些文本的操作就是要使用Java的字节流对象。
InputStream和OutputStream分别是输入与输出字节流,它们都是抽象类型的,都不能实例化,它们在I/O包中的顶层,作为了众多字节流的父类。
Java中的字节流有很多,这是我写的几个常用的字节流Demo.
FileInputStream/FileOutputStream
FileInputStream与FileOutputStream 被称为文件流,是最常见的字节流。用于对磁盘文件的读写操作。
* File类不只能创建、删除、获取文剪信息,但是不能打开和读写文件。FileInputStream与FileOutoutStream就是用于读写文件的
* FileInputStream 的构造方法
* FileInputStream fis = new FileInputStream("c:/abc");
File file = new File("c:/abc");
FileInputStream fis = new FileInputStream(file);
为了简化常用:
FileInputStream fis = new FileInputStream(new File("c:/abc"));
Demo:
package com.tai.io; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamDemo { /** * 本程序的功能是将一个文本中的内容复制到另一个文本中。 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream(new File("C:/abc/Demo.txt")); FileOutputStream fos = new FileOutputStream(new File("C:/abc/Demo2.txt"),false); int b= 0,len=0; byte[] bt = new byte[512]; while(-1!=(len=fis.read(bt,0,512) ) ) { fos.write(bt,0,len); } System.out.println("已经吧Demo.txt中的内容复制到了Demo2.txt中!!"); fos.close(); fis.close(); FileOutputStream fos2 = new FileOutputStream(new File("C:/abc/Demo3.txt"),false); writein(fos2,"hello world!"); System.out.println("已经hello world写入到了文件C:/abc/Demo3.txt中"); } /* * 简单的向文件写入字符串 */ private static void writein(FileOutputStream fos,String str) { byte[] b = str.getBytes(); try { fos.write(b); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
FileOutputStram
执行结果:
已经吧Demo.txt中的内容复制到了Demo2.txt中!!
已经hello world写入到了文件C:/abc/Demo3.txt中
相关文章推荐
- Java复习笔记+经验总结-04 java异常 常用工具类
- Java复习总结3
- Java复习总结:Java面向对象程序设计—异常的捕获及处理、包及访问控制权限
- java十年技术栈[总结复习用]
- Java期末考试复习知识点总结
- [置顶] Java面试之前复习总结(一)
- JAVA基础复习总结
- java基础复习总结之数组
- java基础复习--复习总结9
- 黑马程序员——java复习总结——异常和包
- Java复习笔记+经验总结-06 多线程 泛型 反射
- java复习总结2
- 黑马程序员_java基础复习总结01
- Java复习总结
- 程序员---java基础复习总结1
- java基础复习--复习总结2
- java基础复习-map与collection set+list集合总结
- java scjp考试复习总结笔记
- java基础入门 选择题总结复习
- Java_Web_Servlet复习总结