java基础IO流 Properties类,打印流,合并流
2015-06-10 22:34
381 查看
Properties类
一、概述
1、Properties是Hashtable的子类,它具备Map集合的特点。而且它里面还有存储的键值对,都是字符串,无泛型定义。是集合中和IO技术想结合的集合容器。
2、特点:
1)可用于键值对形式的配置文件
2)在加载时,需要数据有固定的格式,常用的是:键=值
二、特有方法
1、设置
Object setProperty(String key,String value);
//设置键和值,调用Hashtable的方法put
2、获取
String getProperty(String key);
//指定key搜索value
Set stringPropertyName();
//返回属性列表的键集,存入Set集合
3、加载流和存入流
void load(InputStream ism);
//从输入字节流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。
void load(Readerreader);
//从输入字符流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。
voidlist(PrintStream out);//将属性列表输出到指定的输出流
void store(OutputStreamout,String comments);
//对应load(InputStream )将属性列表(键值对)写入输出流。comments属性列表的描述。
void store(Writerwriter, String comments);
//对应load(Reader)将属性列表(键值对)写入输出流。comments属性列表的描述。
package properties; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; import java.util.Set; public class PropertiesDemo { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //SetandGet(); loadDemo(); } public static void loadDemo() throws IOException { Properties p=new Properties(); FileInputStream fis=new FileInputStream("F:\\info.txt"); //将流存到集合中 p.load(fis); p.setProperty("zhaosi", "29"); p.list(System.out); FileOutputStream fos=new FileOutputStream("F:info.txt"); p.store(fos, "haha"); p.list(System.out); } //设置和获取元素 public static void SetandGet(){ Properties p=new Properties(); p.setProperty("张三", "13"); p.setProperty("wangwu", "23"); p.setProperty("赵六", "33"); System.out.println(p); Set<String> names=p.stringPropertyNames(); for (String name : names) { System.out.println(name+":::"+p.getProperty(name)); } } } 练习二 package properties; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class RunCount { /** * 记录程序运行次数的配置文件 * 运行到多少次需要去注册 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { File file=new File("F:\\count.ini"); if (!file.exists()) { file.createNewFile(); } FileInputStream fis=new FileInputStream(file); //把流存到集合中 Properties p=new Properties(); p.load(fis); int count=0; String value=p.getProperty("time"); if (value!= null) { count=Integer.parseInt(value); if (count>=5) { System.out.println("您的体验次数用完,需要注册缴费!"); } count++; } p.setProperty("time",count+""); FileOutputStream fos=new FileOutputStream("F:\\count.ini"); p.store(fos, ""); } }
打印流
一、概述
1、打印流包括:PrintStream和PrintWriter
2、该流提供了打印方法,可将各种类型的数据都原样打印。
二、字节打印流:PrintStream
构造方法中可接收的参数类型:
1、File对象。File
2、字符串路径:String
3、字符输出流:OutputStream
三、字符串打印流:PrintWriter
构造方法中可接受的参数类型
1、File对象:File
2、字符串路径:String
3、字节输出流:OutputStream
4、字符输出流:Writer
练习:
package printWriterDemo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; public class PrintStream { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("F:\\1.txt")),true); String line=null; while ((line=bf.readLine())!=null) { if ("over".equals(line)) { break; } out.println(line.toUpperCase()); //out.flush(); } bf.close(); out.close(); } }
序列流
一、概述
1、SequenceInputStream对多个流进行合并。也被称为合并流。
二、常见合并多个流文件步骤
1、创建集合,并将流对象添加进集合
2、创建Enumeration对象,将集合元素加入。
3、创建SequenceInputStream对象,合并流对象
4、创建写入流对象,FileOutputStream关联写入文件
5、利用SequenceInputStream对象和FileOutputStream对象读数据进行反复读写操作。
相关文章推荐
- Spring IOC
- eclipse中查看快捷键
- java PropertyDescriptor 应用及源码分析
- MAC JDK版本切换
- java Introspector谈Java内省机制
- 黑马程序员---2015.6.10java学习笔记---软件--dos--JDK---while
- Java基础
- Java外观模式(Facade)
- 用数组实现栈(java语言实现)
- Spring Aop代理
- Eclipse 生成Android项目javadoc遇到的问题
- 【java】Thread中的同步
- Java笔记02 基础语法1
- Java内部类详解
- Java——(五)Collection之List集合、ArrayList和Vector实现类
- SpringMVC整合TaskExecutor线程池的配置/使用
- java中的==与equals()
- Java程序的运行
- Java位运算符号操作
- Spring集成ORM框架之Hibernate的使用