string txtFileName = Path.Combine(@"E:\report", fileName + ".txt"); if (File.Exists(txtFileName)) { using (StreamReader sr = new StreamReader(txtFileName)) { string line; while ((line = sr.ReadLine()) != null) { sw.WriteLine(line); } } }
时间: 2023-06-18 08:04:27 浏览: 102
这段代码的作用是读取指定路径下的一个以fileName命名的txt文件,并将该文件中的每一行内容写入到一个StreamWriter对象sw所代表的文件中。
具体来说,代码首先使用Path.Combine方法将指定目录(@"E:\report")和文件名(fileName + ".txt")合成为完整的文件路径,存储在txtFileName变量中。
接下来,代码首先使用File.Exists方法判断该路径下的文件是否存在,如果存在则执行后续代码。使用using语句创建一个StreamReader对象sr,该对象用于读取txtFileName文件中的内容。
接下来,代码使用while循环从sr对象中逐行读取文件内容,并将每一行内容写入到StreamWriter对象sw所代表的文件中。
需要注意的是,代码中没有显示创建StreamWriter对象,因此需要在代码的其他部分中创建该对象并将其绑定到指定的文件路径。
相关问题
执行代码string csvFileName = Path.Combine(@"E:\report", fileName + ".csv"); if (File.Exists(csvFileName)) { File.Delete(csvFileName); } using (StreamWriter sw = new StreamWriter(csvFileName, true, Encoding.UTF8)) 表头{ sw.WriteLine("Test Model: " + exParams.GetParameter("Model") + "--特斯拉烧录系统"); sw.WriteLine("Software Version: " ); sw.WriteLine("Serial Number: " + barcode); sw.WriteLine("Start Time: " ); sw.WriteLine("Test Time: " + testTime); sw.WriteLine("Test Result: " + result); sw.WriteLine("Test Operator: " ); sw.WriteLine("Test Equipment Number: " + exParams.GetParameter("E_NO")); sw.WriteLine("Burnprocess: " + exParams.GetParameter("Process")); sw.WriteLine("************************************************************************************************************************"); } }在转换后,之前的txt文件内容不见了,只剩添加的表头了
根据你提供的代码,可以看出是在指定的文件路径下创建一个新的 CSV 文件,并将指定的表头写入到文件中。由于使用了 `StreamWriter` 的构造函数中的 `true` 参数,表示在文件末尾追加内容,所以如果文件已经存在,会先将其删除,然后再创建新的文件,并将表头写入。
如果你想要将之前的 TXT 文件内容也写入到新的 CSV 文件中,可以在表头写入完成之后,再读取之前的 TXT 文件内容,将其逐行写入到 CSV 文件中即可。你可以在代码中添加以下内容:
```
// 读取之前的 TXT 文件内容
string txtFileName = Path.Combine(@"E:\report", fileName + ".txt");
if (File.Exists(txtFileName))
{
using (StreamReader sr = new StreamReader(txtFileName))
{
string line;
while ((line = sr.ReadLine()) != null)
{
sw.WriteLine(line);
}
}
}
```
这样就可以将之前的 TXT 文件内容与表头一起写入到新的 CSV 文件中了。
java练习:定义一个学生类 Student,包含属性name, age, id,性别,创高跑步公里数distance。设置每个属性的getter/setter方法,定义一个班级类,包含属性班级名称,学院等属性,班级的所有学生都存储在里面(49人)。-把班级班级成员写入要一个txt文件中,每个学生占一行,每个属性逗号分割。例如:姓名:张三,学号:111,...姓名:李四,学号:112,...-从txt文件重新读取然后把班级成员写入要一个csv文件中(Excel)
好的,下面是Java代码实现:
Student类:
```java
public class Student {
private String name;
private int age;
private String id;
private String gender;
private int distance;
public Student(String name, int age, String id, String gender, int distance) {
this.name = name;
this.age = age;
this.id = id;
this.gender = gender;
this.distance = distance;
}
// getter/setter methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getDistance() {
return distance;
}
public void setDistance(int distance) {
this.distance = distance;
}
}
```
Class类:
```java
import java.io.*;
public class Class {
private String className;
private String college;
private Student[] students;
public Class(String className, String college) {
this.className = className;
this.college = college;
this.students = new Student[49];
}
// getter/setter methods
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public Student[] getStudents() {
return students;
}
public void setStudents(Student[] students) {
this.students = students;
}
// write students to txt file
public void writeStudentsToFile(String fileName) throws IOException {
FileWriter fileWriter = new FileWriter(fileName);
PrintWriter printWriter = new PrintWriter(fileWriter);
for (int i = 0; i < students.length; i++) {
Student student = students[i];
String line = "姓名:" + student.getName() + ",学号:" + student.getId() + ",年龄:" + student.getAge() + ",性别:" + student.getGender() + ",跑步公里数:" + student.getDistance();
printWriter.println(line);
}
printWriter.close();
fileWriter.close();
System.out.println("班级成员已写入文件" + fileName);
}
// read students from txt file and write to csv file
public void readStudentsFromFile(String txtFileName, String csvFileName) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(txtFileName));
FileWriter fileWriter = new FileWriter(csvFileName);
PrintWriter printWriter = new PrintWriter(fileWriter);
String line = bufferedReader.readLine();
while (line != null) {
String[] parts = line.split(",");
String name = parts[0].split(":")[1];
String id = parts[1].split(":")[1];
int age = Integer.parseInt(parts[2].split(":")[1]);
String gender = parts[3].split(":")[1];
int distance = Integer.parseInt(parts[4].split(":")[1]);
Student student = new Student(name, age, id, gender, distance);
students[students.length - 1] = student;
// write to csv file
printWriter.print(name + ",");
printWriter.print(age + ",");
printWriter.print(id + ",");
printWriter.print(gender + ",");
printWriter.println(distance);
line = bufferedReader.readLine();
}
printWriter.close();
fileWriter.close();
bufferedReader.close();
System.out.println("班级成员已从文件" + txtFileName + "中读取并写入文件" + csvFileName);
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) throws IOException {
Class cls = new Class("计算机科学与技术1班", "计算机学院");
// create 49 students
for (int i = 0; i < 49; i++) {
Student student = new Student("张三" + i, 20 + i % 5, "2021000" + String.format("%02d", i + 1), i % 2 == 0 ? "男" : "女", i * 100);
cls.getStudents()[i] = student;
}
// write to txt file
cls.writeStudentsToFile("students.txt");
// read from txt file and write to csv file
cls.readStudentsFromFile("students.txt", "students.csv");
}
}
```
运行后会在项目目录下生成students.txt和students.csv两个文件,分别是文本和CSV格式的班级成员信息。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)