输入流输出流作业题

第一题: 	
在c盘有一个文件index.htm

内有类似 这样的  url  :    <a href="http://127.0.0.1:8080/">

请写一个函数, 该函数实现这样的功能:
1 将文件index.html 复制到 d盘
2 复制后的文件中,10.10.10.15:8080 这样的内容,可以在复制的过程中指定,用别的ip代换
3 尽可能将该函数写的人性化
public class Test2 {
	
	public static void main(String[] args) throws IOException  {	
			copyAndReplace("127.0.0.1:8080","192.168.1.1:9999");
		}
				
		static void copyAndReplace(String s1,String s2) throws IOException {
			//输入
			BufferedReader br= new BufferedReader( new FileReader("c:/index.htm"));
			
			//输出
			BufferedWriter bw=new BufferedWriter(new FileWriter("d:/index_copy.htm"));
			
			String str=null;
			while((str=br.readLine())!=null) {
				bw.write(str.replace(s1, s2));
				bw.newLine();
				bw.flush();
			}
			
	
			br.close();
			bw.close();
		}
	}

第二题:
编写程序,将一个视频文件,切割成指定大小的文件块

public static void main(String[] args) throws IOException  {	
		cut("C:\\Users\\Administrator\\Desktop\\java99\\Lesson23文件\\File类常用操作.wmv");
		System.out.println("ok");
	}	
	
	static void cut(String fileName) throws IOException {
		InputStream in =new FileInputStream(fileName);
		
		byte [] buff=new byte[1024*1024];
		int len=0;
		int count=0;

		while((len=in.read(buff))!=-1) {
			OutputStream out=new FileOutputStream("c:/cut/File类常用操作_part"+count++);
			out.write(buff,0,len);
			out.close();
		}
		
		in.close();
	}

第三题
将上面切割出来的文件,合并成一个文件

static void mergeNew() throws IOException {
		//构造输出流,用来存放合并完之后的文件
		OutputStream out=new FileOutputStream("c:/aaa.wmv");
		for(int i=0;i<=13;i++) {
			InputStream in=new FileInputStream("C:/cut/File类常用操作_part"+i);
			byte [] buff=new byte[in.available()];	
			in.read(buff);
			out.write(buff);	
			in.close();
		}
		
		out.close();	
	}

	
	static void merge() throws IOException {
		//构造输出流,用来存放合并完之后的文件
		OutputStream out=new FileOutputStream("c:/合并完的文件.wmv");
		
		File f=new File("c:/cut");
		File [] fileList =f.listFiles();
		
		for(File part:fileList) {
			InputStream in=new FileInputStream(part);
			byte [] buff=new byte[in.available()];	
			in.read(buff);
			out.write(buff);	
			in.close();
		}
		
		out.close();	
	}

第四题
配置文件service.txt的内容如下:

#服务名 目的地址 端口号 服务类名 系统名称
HOST localhost 9870 TransferService 后台主机
HIPAY localhost 9870 BJElecToHipayService 应用服务器


一行是一个service的配置,每行5列,列间以空格或tab字符分隔。

#为注释符号,即首字符是#的行为注释

类ServiceInfo如下:
public class ServiceInfo{
private String serviceName;
private String address;
private int port;
private String serviceClassName;
private String description;

//get/set method

}

一个ServiceInfo对象存储一行服务配置信息。

类ServiceInfoManager的接口如下:
public Interface ServiceInfoManager{
public ServiceInfo getServiceInfo(String serviceName);
}
请编写类实现ServiceInfoManager接口,该类能自动读取service.txt配置文件生成ServiceInfo对象,并对外提供最快的按serviceName检索ServiceInfo的功能。

public interface ServiceInfoManager {
public ServiceInfo getServiceInfo(String serviceName);

public interface ServiceInfoManager {
	  ServiceInfo getServiceInfo(String serviceName);
}


public class ServiceInfoManagerImpl implements ServiceInfoManager {
	public ServiceInfo getServiceInfo(String serviceName) {
		ServiceInfo info=null;
		
		BufferedReader br=null;
		try {
			br=new BufferedReader(new FileReader("src/service.txt"));
			br.readLine();  //跳过注释那行
			
			String str=null;
			while((str=br.readLine())!=null) {
				String [] lineData= str.split("\t");
				
				if(lineData[0].equals(serviceName)) {
					info=new ServiceInfo();
					info.setServiceName(lineData[0]);
					info.setAddress(lineData[1]);
					info.setPort(Integer.parseInt( lineData[2]));
					info.setServiceClassName(lineData[3]);
					info.setDescription(lineData[4]);
					
					break;
				}
			}
		}
		
		catch(Exception ex) {
			ex.printStackTrace();
		}
		
		finally {
			if(br!=null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}	
		}
			
		return info;
	}

}

public class Test {
	public static void main(String[] args) {		
		ServiceInfoManager manager=new ServiceInfoManagerImpl();
		
		System.out.println("请输入要查找到服务名:");
		Scanner scan =new Scanner(System.in);
		String name=scan.next();
		
		ServiceInfo info =manager.getServiceInfo(name);
		System.out.println(info);
	}

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值