import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
/**
* 功能:Java读取txt文件的内容 步骤:1:先获得文件句柄 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
* 3:读取到输入流后,需要读取生成字节流 4:一行一行的输出。readline()。 备注:需要考虑的是异常情况
*
* @param filePath 文件路径[到达文件:如: D:\aa.txt]
* @return 将这个文件按照每一行切割成数组存放到list中。
*/
public static List<String> readTxtFileIntoStringArrList(String filePath) {
List<String> list = new ArrayList<String>();
try {
String encoding = "utf-8";
File file = new File(filePath);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding);// 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
File fileOut = new File("/Users/apple/Desktop/info/pb/sheet4_out.txt");
PrintStream ps = new PrintStream(new FileOutputStream(fileOut));
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
System.out.println(lineTxt);
if(StringUtils.isBlank(lineTxt)){
continue;
}
lineTxt = "select t.id from t where t.user = '" + lineTxt+"';";
ps.println(lineTxt);// 往文件里写入字符串
list.add(lineTxt);
}
bufferedReader.close();
read.close();
} else {
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
return list;
}
public static void txtToDeduplication(String filePath) {
try {
File file = new File(filePath);
// 需要处理数据的文件位置
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
Map<String, String> map = new HashMap<String, String>();
String readLine = null;
int i = 0;
while ((readLine = bufferedReader.readLine()) != null) {
// 每次读取一行数据,与 map 进行比较,如果该行数据 map 中没有,就保存到 map 集合中
if (!map.containsValue(readLine)) {
map.put("key" + i, readLine);
i++;
}
}
//输出文件
File fileOut = new File("/Users/apple/Desktop/info/pdout/deduplication.txt");
PrintStream ps = new PrintStream(new FileOutputStream(fileOut));
for (int j = 0; j < map.size(); j++) {
System.out.println(map.get("key" + j));
ps.println(map.get("key" + j));// 往文件里写入字符串
}
bufferedReader.close();
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
}
public static void main(String[] args) {
// List<String> list = readTxtFileIntoStringArrList("/Users/apple/Desktop/info/pb/sheet4.txt");
txtToDeduplication("/Users/apple/Desktop/info/pdout/pdout.txt");
// System.out.println(list);
}
}