我想在档案中添加一名员工。
班级员工/ getter and setters /
类EmployeeStore
import java.util.ArrayList;
public class EmployeeStore {
ArrayList<Employee> emp ;
public EmployeeStore()
{
emp = new ArrayList<Employee>();
}
public void ajouter(Employee employee)
{
emp.add(employee);
}
}
Class Main
import java.io.*;
public class EmployeeTest {
public static void main(String[] args) {
EmployeeStore employee = new EmployeeStore();
try {
BufferedWriter out = new BufferedWriter(new FileWriter("C:/Users/Akram/Documents/akram.txt")) ;
Employee str = new Employee("Akram","Khalifa");
employee.ajouter(str);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append( str );
// out.write(str);
out.close();
System.out.println("File created successfuly");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
创建的文件但我在文件中找不到任何内容(文件为空)。
答案 0 :(得分:1)
您提供的代码非常混乱。 stringBuilder部分什么都不做。 显然是创建了一个空文件,因为你已经将一个编写器打开到一个文件,但是你从来没有写过任何东西。 当您说“我想在文件中添加员工”时,这意味着您正在尝试序列化员工对象。这可以通过多种方式实现。 您可以使用ObjectOutputStream尝试java的本机序列化(还要注意Writers和Streams之间的区别)。 可以在javadoc中找到一个示例: http://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html
答案 1 :(得分:1)
您错过了使用fileWriter将您的stringBuilder转储到您的文件中我假设您的Employee具有firstName和lastName属性 主类应以这种方式编码:
public class Main {
public static void main(String[] args) {
EmployeeStore employee = new EmployeeStore();
try {
Employee str = new Employee("Akram","Khalifa");
employee.ajouter(str);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append( "firstName : "+str.getFirstName () + " --LastName :"+str.getLastName());
FileWriter writer = new FileWriter("C:/Users/Akram/Documents/akram.txt") ;
//write down ur employee in the file
writer.write(stringBuilder.toString());;
BufferedWriter out = new BufferedWriter(writer) ;
out.close();
System.out.println("File created successfuly");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 2 :(得分:1)
将// out.write(str);
替换为out.write(stringBuilder.toString());
并覆盖Employee类的toString()
方法,以便在创建的文件中看到有关Employee类的相关信息。
答案 3 :(得分:0)
没有你真正写东西的地方。你可以试试这个
out.append(stringBuilder.toString());
到位的地方
// out.write(str);
答案 4 :(得分:0)
创建的文件但我在文件中找不到任何内容(文件为空)。
// out.write(str);
您正在创建空文件并关闭它而不向其写入任何内容。
根据Api,write()接受String,所以你需要 在编写之前将String Builder转换为String
out.write(str.toString())
将解决它。