如何在使用 java 修改特定数字列值后写入 CSV 文件
how to write CSV FILE after modification in specific numeric column values using java
我有一个包含大约 46000 个实例和 17 个属性的数据集 csv 文件。然后我提取列值中的一个并修改它的值,增加 1 现在我想要修改后的 csv 文件 values.how 我可以吗得到....
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.FileWriter;
//import com.csvreader.CsvWriter;
//import com.opencsv.CSVReader;
//import com.opencsv.CSVWriter;
//import au.com.bytecode.opencsv.CSVWriter;
public class Main {
public static void main(String[] args) {
// TODO code application logic here
String filename ="bank-full.csv";
File file= new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
while(inputStream.hasNext())
{
double abc;
String data= inputStream.next();
String[] values = data.split(";");
double balance= Double.parseDouble(values[11]);
balance=balance+1;
System.out.println(balance);
}
inputStream.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
您已经有了 String[] values
中值的字符串数组。那么为什么不将修改后的 balance
分配回 values[11]
然后加入值,用分号粘起来?
您可以尝试在 System.out.println(balance);
之后添加:
System.out.println(balance);
// replace original value with the modified balance
values[11] = String.valueOf(balance);
// iterate through the values and build a string out of them
StringBuilder sb = new StringBuilder();
for (int i = 0; i < values.length; i++) {
sb.append(values[i]);
if (i < values.length - 1) {
// if it is not the last value, put a semicolon in between
sb.append(";");
}
}
// get the new string
String newData = sb.toString();
System.out.println(newData);
新值现在存储在字符串 newData
中。只需将 newData
写入新的 .csv 文件即可。
我有一个包含大约 46000 个实例和 17 个属性的数据集 csv 文件。然后我提取列值中的一个并修改它的值,增加 1 现在我想要修改后的 csv 文件 values.how 我可以吗得到....
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.FileWriter;
//import com.csvreader.CsvWriter;
//import com.opencsv.CSVReader;
//import com.opencsv.CSVWriter;
//import au.com.bytecode.opencsv.CSVWriter;
public class Main {
public static void main(String[] args) {
// TODO code application logic here
String filename ="bank-full.csv";
File file= new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
while(inputStream.hasNext())
{
double abc;
String data= inputStream.next();
String[] values = data.split(";");
double balance= Double.parseDouble(values[11]);
balance=balance+1;
System.out.println(balance);
}
inputStream.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
您已经有了 String[] values
中值的字符串数组。那么为什么不将修改后的 balance
分配回 values[11]
然后加入值,用分号粘起来?
您可以尝试在 System.out.println(balance);
之后添加:
System.out.println(balance);
// replace original value with the modified balance
values[11] = String.valueOf(balance);
// iterate through the values and build a string out of them
StringBuilder sb = new StringBuilder();
for (int i = 0; i < values.length; i++) {
sb.append(values[i]);
if (i < values.length - 1) {
// if it is not the last value, put a semicolon in between
sb.append(";");
}
}
// get the new string
String newData = sb.toString();
System.out.println(newData);
新值现在存储在字符串 newData
中。只需将 newData
写入新的 .csv 文件即可。