【JAVA】文件各行打乱

时间:2021-01-08 00:44:45
给定一个文件,把文件 里的各行打乱,并验证其正确性,时间紧迫,随手写写
        String path = "/Users/guangyi.zgy/Desktop/scene_2khas_8kno_query_1W.csv";
List<String> newList=new ArrayList<String>();
//打开文件
File file = new File(path);
try {
InputStream instream = new FileInputStream(file);
if (instream != null)
{
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
//分行读取
int j = 0;
while (( line = buffreader.readLine()) != null) {
newList.add(line);
}
instream.close(); String[] newA = new String[newList.size()];
for (String str : newList) {
Random random = new Random();
int a = random.nextInt(newList.size());
if (newA[a] == null) {
newA[a] = str;
} else {
for (int i = 0; i < newA.length; i++) {
if (newA[i] == null) {
newA[i] = str;
break;
}
}
}
}
String pathNew = "/Users/guangyi.zgy/Desktop/NEW_scene_2khas_8kno_query_1W.csv";
File fileNew = new File(pathNew);
fileNew.createNewFile(); OutputStream outputStream = new FileOutputStream(fileNew);
BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(outputStream)); boolean firstLine = true;
for (String str : newA) {
if (firstLine) {
bf.write(str);
firstLine = false;
continue;
}
if (str != null) {
bf.write("\n" + str);
} else {
System.out.println("有空行出现");
}
}
bf.close(); for (String str : newA) {
int count = 0;
for (String str1 : newA) {
if (StringUtils.equals(str1.trim(), str.trim())) {
count ++;
}
}
if (count > 1) {
System.out.println("有多个相同字符");
}
}
}
}
catch (java.io.FileNotFoundException e)
{
}
catch (IOException e)
{
}