读书人

Java学习 之 IO源

发布时间: 2012-12-23 11:28:15 作者: rapoo

Java学习 之 IO流

1.实现FilenameFilter接口,应用accept方法实现遍历指定目录下的所有符合条件的文件,这里以遍历出所有的.java文件为例:

?

?

import java.io.File;import java.io.FilenameFilter;public class File_list_accept {/** * Main 方法,程序入口 * @param args */public static void main(String[] args) {File file = new File(".");File[] nameList = file.listFiles(new MyFilenameFilter());for (File name : nameList) {if (name.getAbsoluteFile().isDirectory()) {File[] nameListFiles = name.listFiles(new MyFilenameFilter());for (File name1 : nameListFiles) {System.out.println(name1.getName());}}}}}class MyFilenameFilter implements FilenameFilter {@Overridepublic boolean accept(File dir, String name) {return name.endsWith(".java")||new File(name).isDirectory();}}

?

?

2.PrintStream类的练习

?

import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintStream;public class PrintStreamText {public static void main(String[] args) throws FileNotFoundException {PrintStream printStream = null;FileOutputStream fos = new FileOutputStream("printStream.txt");printStream = new PrintStream(fos);printStream.println("Java 处理流体系之PrintStream流的测试代码");printStream.print(new PrintStreamText());printStream.close();// 这里我们只需要关闭处理流PrintStream即可,而不必关心FileOutputSream// 因为当我们关闭了最上层的处理流时,系统会自动关闭被该处理流包装的节点流}}

?

?

?

3.输入流FileInputStream和FileReader

?

import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class Read_FileInputStream_and_FileReader {public static void main(String[] args) {Read_FileInputStream_and_FileReader file = new Read_FileInputStream_and_FileReader();//file.fileInputSreamMethod();file.fileReaderMethod();}/** *  使用字节流读取数据 */public void fileInputSreamMethod(){FileInputStream fileInputStream = null;try {// 中文注释//fileInputStream = new FileInputStream("D:\\D\\Android_Code\\Java_IO_(1)\\src\\File.java");fileInputStream = new FileInputStream("./src/File_list_accept.java");byte[] bytes = new byte[1024];// 当这里的数组设置成1时,输出上面的“中文注释”时将出现乱码,// 这是因为每个中文字符占据2个字节,而read方法读取时只读到了半个中文字符,因此导致乱码int readCount  = 0;while ((readCount  = fileInputStream.read(bytes)) > 0) {System.out.println(new String(bytes, 0, readCount));}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fileInputStream != null) {try {fileInputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}/** * 使用字符流读取数据 */public void fileReaderMethod(){FileReader fileReader = null;try {fileReader = new FileReader("./src/File_list_accept.java");//fileReader.skip(200);char[] chars = new char[1024];int readCount = 0;while ((readCount = fileReader.read(chars)) > 0) {System.out.println(new String(chars, 0, readCount));}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {if (fileReader != null) {try {fileReader.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}

?

?

?

4.输出流FileOutputStream和FileWriter

?

import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;public class Write_FileOutputStream_and_FileWriter {public static void main(String[] args) throws IOException {/** * FileInputStream */FileInputStream fileInputStream = null;FileOutputStream fileOutputStream = null;fileInputStream = new FileInputStream("./src/File_list_accept.java");fileOutputStream = new FileOutputStream("newFile.txt");byte[] bytes = new byte[1024];int readCount = 0;while ((readCount = fileInputStream.read(bytes)) > 0) {fileOutputStream.write(bytes, 0, readCount);}if (fileInputStream != null) {fileInputStream.close();}if (fileOutputStream != null) {fileOutputStream.close();}/** * FileWriter */FileWriter fileWriter = null;fileWriter = new FileWriter("./fileWriter.txt");fileWriter.write("---------黄鹤楼---------\r\n"); // \r\n是Window的换行符,Linux等则用\n即可fileWriter.write("白日依山尽,黄河入海流。\r\n");fileWriter.write("欲穷千里目,更上一层楼。");if (fileWriter != null) {fileWriter.close();}}}

?

读书人网 >编程

热点推荐