黑马程序员——IO(二)

来源:互联网 发布:上海程序员工资 编辑:程序博客网 时间:2024/05/26 17:49

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
流操作的基本规律:最痛苦的就是流对象有很多,不知道该用那一个。

通过明确来完成。

(1)、明确源和目的

源:输入流InputStream Reader 目的:输出流OutputStream Writer 

(2)、操作的数据是否是纯文本

是:字符流 Reader Writer 不是:字节流 InputStream OutputStream 

(3)、当体系明确后,再明确要使用那个具体的对象

通过设备来进行区分: 源设备:内存 硬盘 键盘 目的设备:内存 硬盘 控制台 

File类

1、用来将文件或者文件夹封装成对象

2、方便对文件与文件夹进行操作

3、File对象可以作为参数传递给流的构造函数。

4、了解File类中的常用方法。

File类常用方法

File f = new File("C:\\文件夹\\1.Java"); File f1 = new File("C:\\文件夹");  //创建一个目录。f1.mkdir(); //创建一个文件夹,如果传入文件名中还有文件夹,会自动创建根文件夹和子文件夹。 f.mkdirs(); /* 调用文件的创建方法,如果该文件的目录不存在,那么将报异常, 如果该文件存在的话,就不创建文件,如果不存在就创建该文件。 */ f.createNewFile(); //是否是可执行文件 sop(f.canExecute()); //文件是否存在 sop(f.exists()); //是否是一个文件 sop(f.isFile()); //是否是一个目录 sop(f.isDirectory()); //是否是隐藏文件 sop(f.isHidden()); 

遍历文件夹目录

package 遍历E盘;//遍历E盘下的文件夹目录import java.io.*;public class IOliu {    static BufferedWriter xie = null;    public static void main(String[] args) throws IOException {        File fe = new File("E://");        xie = new BufferedWriter(new FileWriter("E:\\KuGou\\a.txt"));        show(fe, 0);            xie.flush();        xie.close();    }    public static String ggt(int le) {        StringBuilder sb = new StringBuilder();        for (int x = 0; x < le; x++) {            sb.append("   ");        }        return sb.toString();    }    public static void show(File f, int le) throws IOException {        // TODO Auto-generated method stub        System.out.println(ggt(le) + f);        le++;        xie.write(ggt(le) + f.toString());        xie.newLine();        File[] files = f.listFiles();        for (int x = 0; x < files.length; x++) {            if (files[x].isDirectory()) {//判断是否文件夹                show(files[x], le);//递归调用            } else {                System.out.println(ggt(le) + files[x]);                xie.write(ggt(le) + files[x]);                xie.newLine();            }        }    }}

IO流(Properties简述)

 Properties 是 Hashtable 的子类 也就是说它具备Map集合的特点,而且它里面存储的键值对都是字符串 是集合中和IO技术相结合的集合容器 该对象特点:可以用于键值对形式的配置文件。 那么在加载数据时候,需要数据有固定格式:键=值 

Properties存取

import java.util.Properties;import java.util.Set;public class Test{public static void main(String...args){     Propertiesprop = System.getProperties();     Set<String> names = prop.stringPropertyNames();     for(String name : names){     sop(name+"::"+prop.getProperty(name)); } } public static void sop(Object obj){     System.out.println(obj); } }

IO流(PrintWriter)

打印流
该流提供了打印方法,可以将各种数据烈性的数据都原样打印。

字节打印流
PrintStream
构造函数可以接受的参数类型
1、file对象。
2、字符串路径。String
3、字节输出流 OutpuStream

字符打印流
PrintWriter
构造函数可以接受的参数类型
1、file对象。
2、字符串路径。String
3、字节输出流 OutpuStream
4、字符输出流 Writer

import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.io.IOException;import java.io.FileWriter;public class Test {    public static void main(String... args) throws IOException {        BufferedReader bufr = new BufferedReader(new InputStreamReader(                System.in));        PrintWriter out = new PrintWriter(new FileWriter("C:\\1.Java"), true);        for (String line = null; (line = bufr.readLine()) != null;) {            if ("over".equals(line))                break;                out.println(line);             //由于PrintWriter加入一个参数,true表示自动刷新,所以这里就不用刷新。            // out.flush();        }        bufr.close();        out.close();    }}
0 0