Я пытаюсь написать файл csv. После выполнения кода ниже csv-файл по-прежнему пуст. Файл находится в папке .../webapp/resources/
.Файл Csv пуст, когда я пишу содержимое
Это мой дао класс:
public class UserDaoImpl implements UserDao {
private Resource cvsFile;
public void setCvsFile(Resource cvsFile) {
this.cvsFile = cvsFile;
}
@Override
public void createUser(User user) {
String userPropertiesAsString = user.getId() + "," + user.getName()
+ "," + user.getSurname() +"\n";;
System.out.println(cvsFile.getFilename());
FileWriter outputStream = null;
try {
outputStream = new FileWriter(cvsFile.getFile());
outputStream.append(userPropertiesAsString);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
@Override
public List<User> getAll() {
return null;
}
}
Это часть beans.xml
.
<bean id="userDao" class="pl.project.dao.UserDaoImpl"
p:cvsFile="/resources/users.cvs"/>
Программа компилирует и не выбрасывает никаких исключений, но CSV-файл пуст.
Причина его пустым связано с тем, что вы не закрыть поток. Кроме того, как @fge написал выше, используйте подход try-with-resources, чтобы избежать необходимости вручную закрывать streHam. Ссылка: http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html –