Day_13【IO流】扩展案例1_读取项目文件内容并去重

分析以下需求,并用代码实现:

  •  需求: 读取当前项目下的info1.txt
     	文件内容如下 : aaaaaaaaaaabbbbbbbbbbbbccdefg
     	要求将数据去重后写回最终效果 : fgdebca
    

思路

  •  1.创建HashSet集合对象用于存储读取到的每一个字符(用于去重)
     2.创建字节输入流对象
     3.将读取到的字符存储到集合中
     4.创建输入流对象关联目标文件
     5.遍历Set集合获取到每一个数据, 并调用write方法写出
     6.关闭流释放资源
    

代码

package com.itheima;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;

public class Test1 {
	public static void main(String[] args) throws IOException {
		//创建HashSet集合对象用于存储读取到的每一个字符(用于去重)
		HashSet<Character> set = new HashSet<Character>();
		
		//创建字节输入流对象
		FileInputStream fis = new FileInputStream("/Users/zhaozhuang/Downloads/develop/subject/day13-IO流/homework/day13作业答案/TestDay13/info1.txt");

		//将读取到的字符存储到集合中
		int len;
		while((len = fis.read()) != -1) {
			set.add((char) len);
		}
		
		//创建输入流对象关联目标文件
		FileOutputStream fos = new FileOutputStream("/Users/zhaozhuang/Downloads/develop/subject/day13-IO流/homework/day13作业答案/TestDay13/info1.txt");
		
		//遍历Set集合获取到每一个数据, 并调用write方法写出
		Iterator<Character> it = set.iterator();
		while(it.hasNext()) {
			char c = it.next();
			fos.write(c);
		}
		
		//释放资源
		fis.close();
		fos.close();
		
	}

}

posted @ 2019-12-31 00:36  _codeRookie  阅读(278)  评论(0编辑  收藏  举报