我有一些代码,但我需要帮助找出如何将if语句的结果保存到数组,然后将其保存到.csv文件。提前谢谢!
String data = new Scanner( new File("Test.csv") ).useDelimiter("\\A").next();
String terms = new Scanner( new File("Terms.txt") ).useDelimiter("\\A").next();
data.split(",");
terms.split("\n");
if (sourceElement.indexOf(dictionaryElement) > 0)
{
//Save results here
}
NameOfArray.join(",");
//Here I need to write the array to a .csv file... Help?
另外,我正在尝试使用一个充满关键字的文本文件来搜索csv文件并将结果保存到新的csv文件中......这个脚本会不会起作用?我对编码很新...
答案 0 :(得分:2)
尝试使用此代码:
//imports
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
//create the array lists to save the data
private static List<String> readData = new ArrayList<String>();
private static List<String> readTerms = new ArrayList<String>();
private static List<String> splitData = new ArrayList<String>();
private static List<String> finalData = new ArrayList<String>();
public static void main(String[] args) throws Exception{
readData();
processData();
writeFinalData();
}
public static void readData() throws Exception{
//create readers
BufferedReader data = new BufferedReader(new FileReader(new File("Test.csv")));
BufferedReader term = new BufferedReader(new FileReader(new File("Terms.txt")));
//read the data and save it into the array lists
String line;
while((line = term.readLine()) != null){
readTerms.add(line);
}
while((line = data.readLine()) != null){
readData.add(line);
}
//close the readers
data.close();
term.close();
}
现在我们有两个数组列表来保存.csv文件中的数据和来自术语文件的数据。下一步是处理这些数据并将其写入文件。
public static void processData(){
//looping through every line in the .csv file, spliting it by , and saving every piece of the data into a new array list
for(String d : readData){
String[] split = d.split(",");
for(int i = 0; i < split.length; i++){
splitData.add(split[i]);
}
}
//searching the .csv file for keywords
for(String s : splitData){
for(String k : readTerms){
//testing if the data from the .csv file contains (or is equal to) the keyword. If true then we add it to the array list which holds the final data that will be writen back to the file
if(s.contains(k)){
finalData.add(s);
}
}
}
}
剩下要做的就是将匹配关键字的数据写回文件。
public static void writeFinalData() throws Exception{
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("words.txt")));
for(String s : finalData){
bw.write(s);
bw.newLine();
}
bw.close();
}
答案 1 :(得分:0)
是的,你可以改用这个循环:
public static void writeFinalData() throws Exception{
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("words.txt")));
String finalLine = "" ;
//merge all the data into one line and separate it by “,“
for(String s : finalData){
finalLine += s + ",";
}
//remove the comma at the end of the line
finalLine = finalLine.substring(0, finalLine.length() - 1);
bw.write(finalLine);
bw.close();
}
答案 2 :(得分:0)
你走了。我不得不改变整个计划。 :)不要再忘记进口;)
// create the array lists to save the data
private static List<String> readTerms = new ArrayList<String>();
private static BufferedWriter bw;
public static void main(String[] args) throws Exception {
openWriter();
readData();
closeWriter();
}
public static void readData() throws Exception {
// create readers
BufferedReader data = new BufferedReader(new FileReader(new File(
"Test.csv")));
BufferedReader term = new BufferedReader(new FileReader(new File(
"Terms.txt")));
// read the data and save it into the array lists
String line;
while ((line = term.readLine()) != null) {
readTerms.add(line);
}
while ((line = data.readLine()) != null) {
processLine(line);
}
// close the readers
data.close();
term.close();
}
public static void processLine(String line) throws Exception{
String[] splitLine = line.split(",");
String finalLine = "";
for(int i = 0; i < splitLine.length; i++){
for(String k : readTerms){
if(splitLine[i].contains(k)){
finalLine += splitLine[i] + ",";
}
}
}
finalLine = finalLine.substring(0, finalLine.length() - 1);
saveLine(finalLine);
}
public static void saveLine(String line) throws Exception{
bw.write(line);
bw.newLine();
}
public static void openWriter() throws Exception{
bw = new BufferedWriter(new FileWriter(new File("words.txt")));
}
public static void closeWriter() throws Exception{
bw.close();
}