java写入csv文件指定位置
时间: 2023-05-27 15:04:03 浏览: 103
java读写csv文件
5星 · 资源好评率100%
要在CSV文件中指定位置写入数据,您需要使用CSV文件的I / O操作和Java IO类库中提供的代码。以下是一些示例代码,可用于将数据写入CSV文件的指定位置。
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class CSVWriter {
public static void main(String[] args) {
String fileName = "example.csv";
String[][] data = {
{ "John", "Doe", "25" },
{ "Jane", "Doe", "30" }
};
int row = 1;
int column = 2;
String newData = "35";
File file = new File(fileName);
try (FileWriter writer = new FileWriter(file)) {
for (String[] rowData : data) {
StringBuilder sb = new StringBuilder();
for (String colData : rowData) {
sb.append(colData);
sb.append(",");
}
sb.deleteCharAt(sb.length()-1);
writer.write(sb.toString());
writer.write("\n");
}
String lineToUpdate = data[row][column];
StringBuilder sb = new StringBuilder();
for (String colData : data[row]) {
sb.append(colData);
sb.append(",");
}
sb.deleteCharAt(sb.length()-1);
String updatedLine = sb.toString().replace(lineToUpdate, newData);
writer.write(updatedLine);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例代码中,我们有一个CSV文件名为“ example.csv”,包含以下内容:
```
John,Doe,25
Jane,Doe,30
```
我们要将值35写入指定位置(第2行,第3列)。因此,在main方法中,我们声明和定义了以下变量:
```java
String fileName = "example.csv";
String[][] data = {
{ "John", "Doe", "25" },
{ "Jane", "Doe", "30" }
};
int row = 1;
int column = 2;
String newData = "35";
```
接下来,我们打开CSV文件以进行写入。我们使用FileWriter类将数据写入文件中。我们先将CSV文件中的所有数据循环遍历,然后将其写入文件。因此,我们使用以下代码:
```java
for (String[] rowData : data) {
StringBuilder sb = new StringBuilder();
for (String colData : rowData) {
sb.append(colData);
sb.append(",");
}
sb.deleteCharAt(sb.length()-1);
writer.write(sb.toString());
writer.write("\n");
}
```
现在,我们准备更新指定位置的值。我们从CSV数据数组中获取要更新的行,然后将其转换为带有逗号分隔符的字符串,并使用String#replace方法将要替换的字符串替换为新的数据。接下来,我们使用以下代码将更新的行写入文件:
```java
String lineToUpdate = data[row][column];
StringBuilder sb = new StringBuilder();
for (String colData : data[row]) {
sb.append(colData);
sb.append(",");
}
sb.deleteCharAt(sb.length()-1);
String updatedLine = sb.toString().replace(lineToUpdate, newData);
writer.write(updatedLine);
```
最后,我们关闭文件写入器,并捕获任何可能的IOException异常。
在此过程中,如果某些变量的值发生更改,则可以更改代码以反映这些更改,并且CSV文件将在相应的位置上更新。
阅读全文