分析以下需求,并用代码实现:
-
需求: 读取当前项目下的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();
}
}