您的位置:首页 > 职场人生

黑马程序员——IO(二)

2015-08-05 00:32 671 查看
——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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: