【JAVA】文件各行打乱

给定一个文件,把文件 里的各行打乱,并验证其正确性,时间紧迫,随手写写
复制代码
        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)
            {
            }
复制代码

 

posted @   我是小菜鸟  阅读(589)  评论(0编辑  收藏  举报
努力加载评论中...
编辑推荐:
· 在.NET Core中使用异步多线程高效率的处理大量数据
· 聊一聊 C#前台线程 如何阻塞程序退出
· 几种数据库优化技巧
· 聊一聊坑人的 C# MySql.Data SDK
· 使用 .NET Core 实现一个自定义日志记录器
阅读排行:
· 字节豆包,来园广告
· 我用cursor, 半就开发了一个手机壁纸小程序,真的太强了
· 聊一聊 C#前台线程 如何阻塞程序退出
· 订单超时自动取消,我们是这样做的。。。
· C#字符串拼接的几种方式及其性能分析对比
点击右上角即可分享
微信分享提示