SequenceInput类
该类的特殊之处在于可以将多个输入流连接到一起,统一输出。比如可以将多个文件中的数据统一整合到一个流中,然后输出到一个单独的文件中。另外还可以通过new出多个流,将一个文件切割成多个文件
import java.util.Vector;
import java.util.Enumeration;
import java.io.*;
public class SequenceInputStreamTest{
public static void main(String[] args) throws IOException{
//combFile();
splitFile();
}
public static void splitFile()throws IOException{
FileInputStream br = new FileInputStream("d:/tempFile/1_2_3.avi");
FileOutputStream bw = null;
byte[] arr = new byte[1024*1024*6];
int a = -1;
int count = 1;
while((a = br.read(arr))!=-1){
bw = new FileOutputStream("d:/tempFile/+"+(count++)+"+.avi");
bw.write(arr,0,a);
bw.close();
}
br.close();
}
public static void combFile()throws IOException{
FileInputStream f1 = new FileInputStream("d:/tempFile/1.txt");
FileInputStream f2 = new FileInputStream("d:/tempFile/2.txt");
FileInputStream f3 = new FileInputStream("d:/tempFile/3.txt");
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(f1);
v.add(f2);
v.add(f3);
Enumeration e = v.elements();
SequenceInputStream sis = new SequenceInputStream(e);
BufferedReader bis = new BufferedReader(new InputStreamReader(sis));
BufferedWriter bw = new BufferedWriter(new FileWriter("d:/tempFile/1_2_3.txt"));
String str = null;
while((str = bis.readLine())!=null){
bw.write(str);
bw.flush();
bw.newLine();
}
bw.close();
bis.close();
sis.close();
}
}
Properties类
java.util.Porperties是一个非常重要的类,它是Hashtable的子类,也就是说是Map的子类,具有Map的重要特性。同时它可以操作流,具有IO的特性。Porperties不仅仅可以操作内存中的键值对,而且还可以操作硬盘上的键值对,常用于软件的配置信息保存!
/*
System描述系统的一系列信息
*/
import java.util.Properties;
import java.util.Map;
import java.io.FileInputStream;
import java.util.Iterator;
import java.io.IOException;
import java.util.Set;
public class SystemTest{
public static void main(String[] args) throws IOException{
Properties pr = System.getProperties();
//由于Properties是Hashtable的字类,所以也是Map集合的子类
//所以可以使用Map的方法取得Properties中的属性信息
Set<String> set = pr.stringPropertyNames();
for(String ob :set){
String str = (String)pr.get(ob);
System.out.println(str);
}//输出java的系统配置信息
System.out.println(pr.getProperty("os.name"));
//指定特有的信息
pr.setProperty("author","xiang");
System.out.println(pr.getProperty("author"));
//在虚拟机启动时动态的指定系统信息
System.out.println(pr.getProperty("Admin"));
//将一个文件中已配置好的键值对信息写到系统配置信息中
Properties p = new Properties();
FileInputStream fis = new FileInputStream("D:/jianzhidui.txt");
p.load(fis);
System.out.println(p);
}
}