IO装饰流之替换文本里的指定数据

IO装饰流之替换文本里的指定数据

定义两个文件:a.txt b.txt
a.txt存放A-Z的26个字母
​ 从控制台输入要替换的字母 ,例如N
​ 从控制台输入要替换的索引 例如:1
a.txt内容为:
​ ABCDEFGHIJKLMN…
b.txt内容为:
​ ANCDEFGHIJKLMN…

public class Work{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入新字母:");
		String s = sc.next();
		char c = s.charAt(s.length() - 1);
		System.out.print("请输入索引:");
		int index = sc.nextInt();
		StaticWork.work("a.txt","b.txt",c,index);
	}
}
public class StaticWork{
	public static void work(String str1,String str2,char c,int index){
		try(//装饰基本流
				BufferedInputStream stream01 = new BufferedInputStream(new FileInputStream(str1));
				BufferedOutputStream stream02 = new BufferesOutputStream(new FileOutputStream(str2));
			){
				List<Character> list = new ArrayList<>();
				int data = 0;
				while((data = stream01.read()) != -1){
				//byte强转为char
					char ch = (char)data;
					list.add(ch);
					//替换元素
					list.set(index,c);
				}
				StringBuilder builder = new StringBuilder();
				String string = null;
				for(char chars : list){
					string = builder.append(chars).toString;
				}
				byte[] bytes = string.getBytes();
				stream02.write(bytes);
			}catch(Exception e){
				 e.printStackTrace();
			}
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值