【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)
{
}
【JAVA】文件各行打乱的更多相关文章
- 小兔Java教程 - 三分钟学会Java文件上传
今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...
- 从java文件和CS文件里查询方法使用次数工具
前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...
- 一个Java文件至多包含一个公共类
编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...
- Android Studio解决未识别Java文件(出现红J)问题
1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...
- Eclipse不自动编译java文件的终极解决方案
最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...
- Java基础-一个java文件多个类的问题
一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.
- 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系
对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- Intellij Idea 工具在java文件中如何避免 import .*包
Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...
随机推荐
- <TCP/IP原理> (一)
1.协议和标准 2.标准化组织 3.Internet标准:RFC 4.Internet的管理机构 一.协议和标准 1.协议(Protocol) 一组控制数据通信的规则 三要素:语法(syntax).语 ...
- Codeforces Global Round 1 A~F
失踪人口回来写题了.. 写了几乎一下午.贴一贴代码以及口糊一下. A. 题意:计算一下这个多项式的和. 题解:暴力算一算对每一项异或一下. #include<bits/stdc++.h> ...
- es定期删除数据
es定期删除数据 1.定期删除索引 使用sentinl报警后,会产生大量如下索引,虽然不占空间,但时间久了也不好,故写个脚本定期删除 脚本如下: 1 #!/bin/bash 2 #只保留5天内的日志索 ...
- 如何查看Linux命令的源代码
首先要在系统设置-->软件和更新-->Ubuntu软件中勾选源代码选项,否则在下载source时会报如下错: E:您必须在sources.list中指定源代码(deb-src)URI 然后 ...
- 【持续跟新】剑指Offer_Java实现
[第一题 ]二维数组中的查找 package sword_finger_offer; import org.junit.jupiter.api.Test; /** * 剑指offer习题一 二维数组中 ...
- 如何将Windows电脑桌面上软件图标下的文字去掉
如何将Windows电脑桌面上软件图标下的文字去掉 重命名的时候,点击鼠标右键.选择“插入Unicode控制字符” 效果
- 深入理解Java设计模式之观察者模式
前言 观察者,即时observer,总结来说就是一个当一个被观察的对象的状态发生变化时,会通知相应的观察者对象. 观察者模式定义了四种角色:抽象主题.具体主题.抽象观察者.具体观察者 1.抽象主题 ...
- sql连接查询中的分类
sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...
- C# 类型转换的开销
先来个测试: static void Main(string[] args) { Stopwatch stopwatch; string strStr = "string"; ob ...
- C-Free 5.0 注册码
用户名:123123 电子邮件:111@qq.com 注册码:mJ2Em9jdm7jGwYTpmp2H6KmehtvO 经过验证,可以正常注册.