主要是利用Hashmap取得文件中的每行数据的值。并显示在控制台上,打印出不同记录的总数。
HashMapRepeat.java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
public class HashMapRepeat {
public static void main(String[] args) throws Exception, IOException {
List<String> list = new ArrayList<String>();
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(new File("C:/a.txt"))));
String str;
String[] data = { "" };
HashMap<String, Integer> map = new HashMap<String, Integer>();
while ((str = br.readLine()) != null) {
list.add(new String(str));
data = list.toArray(data);
}
for (String s : data) {
if (!map.containsKey(s)) {
map.put(s, 1);
} else {
map.put(s, map.get(s) + 1);
}
}
Set<String> keys = map.keySet();
int count = 0;
for (String key : keys) {
if (map.get(key) <= 1) {
System.out.print(key + "\n");
}
++count;
}
System.out.println(count);
}
}
One Method
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;
public class Main {
public static void main(String[] args) {
File target = new File("C:/a.txt");
Set<String> set = new HashSet<String>();
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = FileUtils.openInputStream(target);
bis = new BufferedInputStream(fis);
LineIterator it = IOUtils.lineIterator(bis, "UTF-8");
while (it.hasNext()) {
String line = it.next().trim();
set.add(line);
}
} catch (IOException e) {
} finally {
IOUtils.closeQuietly(bis);
IOUtils.closeQuietly(fis);
}
List<String> list = new ArrayList<String>(set);
// Collections.sort(list);
int count = 0;
for (String str : list) {
System.out.println(str);
count++;
}
System.out.println("Count:"+count);
}
}