黑马程序员--基础--第二篇--SequenceInputStream和Properties类特殊类

本文介绍了Java中SequenceInputStream类的使用方法,包括文件合并与分割的实际应用案例,并详细解析了Properties类的功能及其应用场景,如读取系统配置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值