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();}}}?