今天兄弟让我帮他做一件事,他是一个不懂技术的只会偷懒的人,说需要一个工具来做数据筛选,没有什么学识的我只想到了使用java程序来实现,于是上去就是一通abcd,玩笑归玩笑,做完了以后,发现用着还可以,于是想写一篇文章记录一下在使用cmd命令编译java程序的时候遇到的一些问题。
首先给了一个数据样本:
丨哈】【C 2-9 14:09:44 大(4321432432)哈丨哈丨哈丨哈】 【A 2-9 14:09:44 小(1232)哈丨哈丨哈丨哈】【B 2-9 14:09:44 打(123232)哈丨哈丨哈丨哈】【C 2-9 14:09:44 大(4321432432)哈丨哈丨哈丨哈】
需要采集括号里面连续的数据,于是想使用字符串截取的方式来将所有的连续数字给截取出来,然后放到一个StringBuffer里面,然后再写入到一个文件里。
代码:
package test;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;
/**
*author:bingbing
*日期:2020年2月9日
*时间:下午2:20:32
*/
public class test {
public static void main(String[]args) throws IOException {
File file=new File("D:\\数据.txt");
if(file.exists()) {
FileInputStream fis=new FileInputStream(file);
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
BufferedReader br=new BufferedReader(isr);
String str="";
while(br.read()!=-1) {
str=br.readLine();
}
System.out.println(str);
StringBuffer sb=new StringBuffer();
int index=0;
while(index<=str.length()) {
//实现原理: 通过一个游标index,来将连续数字的左括号和右括号定位出来,找到一个后就截取
//出来,放到StringBuilder里面,然后将游标后移,移到的位置为上一次截取到的右括号的位置。
int start= str.indexOf('(',index);
int end=str.indexOf(')',index);
if(start!=-1 && end !=-1) {
String temp=str.substring(start+1, end);
sb.append(temp+";");
index=end+1;
}else {
break;
}
}
System.out.println("截取到的字符串为:"+sb.toString());
FileOutputStream fos=new FileOutputStream(new File("D:\\结果.txt"));
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
BufferedWriter bw=new BufferedWriter(osw);
bw.write(sb.toString());
System.out.println("写入文件完毕!");
br.close();
bw.close();
}else {
file.createNewFile();
}
}
}
数据放到D盘的根目录,然后将数据读取出来,操作完之后再放进去。
编译成功,输出到想要的结果
但对于一个不懂技术的人来说,这样是远远不够的,为了方便后面继续 使用,于是我想到了使用cmd命令来执行程序,一件命令,执行成功后,得到数据结果。
使用cmd命令来编译并运行java程序:
1) 类带包的话,需要注意的是,在它的上一级目录编译好后,新建一个test文件夹,把java文件和class文件放入到test文件夹里面去,然后返回上一级目录,运行。
运行的命令为: java test.test
2) 在使用javac编译的时候,出现乱码,解决方法如下
使用如下命令: javac -encoding utf-8 test.java
编译成功后,在同级目录下会生成.class文件!
3) 编译完成后,使用java 命令运行程序,运行成功后,将命令放到.bat文件里,一键执行。
.bat文件里面的命令如下:
cd d:
d:
java test.test