黑马程序员——IO(二)
2015-08-05 00:32
671 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
流操作的基本规律:最痛苦的就是流对象有很多,不知道该用那一个。
通过明确来完成。
(1)、明确源和目的
(2)、操作的数据是否是纯文本
(3)、当体系明确后,再明确要使用那个具体的对象
File类
1、用来将文件或者文件夹封装成对象
2、方便对文件与文件夹进行操作
3、File对象可以作为参数传递给流的构造函数。
4、了解File类中的常用方法。
File类常用方法
遍历文件夹目录
IO流(Properties简述)
Properties存取
IO流(PrintWriter)
打印流
该流提供了打印方法,可以将各种数据烈性的数据都原样打印。
字节打印流
PrintStream
构造函数可以接受的参数类型
1、file对象。
2、字符串路径。String
3、字节输出流 OutpuStream
字符打印流
PrintWriter
构造函数可以接受的参数类型
1、file对象。
2、字符串路径。String
3、字节输出流 OutpuStream
4、字符输出流 Writer
流操作的基本规律:最痛苦的就是流对象有很多,不知道该用那一个。
通过明确来完成。
(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(); } }
相关文章推荐
- 黑马程序员_Java基础:多线程总结
- js一道面试题
- StackOverflow程序员推荐:每个程序员都应读的30本书
- 为啥面试需要Aggressive?
- 背包算法解决一道华为面试题
- leetcode面试准备:Contains Duplicate I && II
- 黑马程序员_Java_String
- 黑马程序员--文件字符输入输出函数的应用
- 黑马程序员——Java String类
- 黑马程序员——Java 多线程
- 操作系统面试题转载
- 黑马程序员——Java 面向对象_包
- 面试题总结
- 黑马程序员——Java 面向对象_异常
- 黑马程序员——Java基础---跳转控制语句与循环语句练习
- 黑马程序员——Java之String类、基本数据类型对象包装类等
- 黑马程序员——Java 面向对象_多态
- 爱奇艺前端面试题3
- 黑马程序员——Java基础--键盘录入数据与流程控制语句
- (剑指Offer)面试题55:字符流中第一个不重复的字符