感觉java的txt文件转化为csv文件的方法会难些。但是可以通过调用jar包里面现成的类方法来解决。
首先我在本地使用的是ideaij的maven,因此在pom.xml在加入依赖,来自动加载jar包到本地库。
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
然后在java文件中添加import:
import com.csvreader.CsvWriter;
然后方法如下,path表示文件将要存储的路径:
//将txt文件存储为csv文件
public void txtToCsv() {
String readFile = path + "newFile.txt";
String writeFile = path + "result.csv";
File file = new File(readFile);
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
try {
CsvWriter csvWriter = new CsvWriter(path + "newfile.csv", ',', Charset.forName("UTF-8"));
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String string = "";
while ((string = bufferedReader.readLine()) != null) {
String[] s = string.split(" | +");
csvWriter.writeRecord(s);
}
csvWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
如果没有maven,只想通过linux中的shell命令执行java文件,需要在网上先download下来这个jar包,然后编译执行:
#方法1
javac -Djava.ext.dirs=/home/wangrui dataProcess.java
#-Djava.ext.dirs表示jar包存放路径
java -Djava.ext.dirs=/home/wangrui dataProcess
#方法2
javac -cp .:sample.jar dataProcess.java
java -cp .:sample.jar dataProcess
方法2中sample.jar包就是你想要调用的jar包。