1.练习:给定一个文件,里边有一些英文字母,编写程序,读取文件中的内容,去除其中的重复的字母,拼接为一个字符串.
public static void main(String[] args) throws IOException {
InputStream input = new FileInputStream("student.txt");
StringBuilder str = new StringBuilder("");
HashSet<Character> set = new HashSet<>();
int res=0;
while ((res=input.read()) != -1){
//str.append(res+" ");
set.add((char)res);
}
System.out.println(set);
for (Character character:set){
str.append(character+" ");
}
System.out.println(str);
byte[] bytes = new byte[10];
//遍历数据
/*int res1 = 0;
while ((res1 = input.read(bytes)) != -1) {
System.out.println(res1);
if (res1 != bytes.length) {
for (int i = 0; i < res1; i++) {
System.out.print(bytes[i]+" ");
}
} else {
System.out.println(Arrays.toString(bytes));
}
}*/
input.close();
}
2.编程︰当前项目的根目录 c.txt文件中的内容为”abddbskshlsjdhhhiw”;编写程序读取文件中的内 容,要求去除重复的字母并按照字母的自然排序后将内容写入到当前项目的根目录d.txt文件中。
public static void main(String[] args) {
File file = new File("c.txt");
File file1 = new File("d.txt");
FileInputStream input = null;
FileOutputStream out = null;
try {
input = new FileInputStream(file);
out = new FileOutputStream(file1);
Set<Character> set = new TreeSet<>();
int res = 0;
while ((res = input.read()) != -1) {
set.add((char) res);
}
System.out.println(set);
for (Character ch : set) {
out.write(ch);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
if (input != null)
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}