[英]Java Spring - write to existing file in resource folder
我有一個簡單的內存數據庫,我在應用程序啟動時從 XML 文件加載用戶。 現在,每當有人注冊時,我都想將該新用戶保存在此 xml 文件中。 我的方法是每次獲取所有用戶,追加新用戶並保存到 xml。 但是,新用戶注冊時似乎沒有任何內容寫入文件。 我知道這種方法不能保存,但這僅出於教育原因。
這是我保存到 xml 類
public class SaveXml {
@Autowired
private UserRepository userRepository;
public void saveUserToXml (User newUser) {
try {
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("Users.xml").getFile());
FileWriter fileWriter = new FileWriter(file);
List<User> usersList = new ArrayList<>();
//populate arraylist with all users;
userRepository.findAll().forEach(usersList::add);
usersList.add(newUser);
XmlMapper xmlMapper = new XmlMapper();
String xmlContent = xmlMapper.writeValueAsString(usersList);
fileWriter.close();
}
catch (Exception e){}
}
}
放置在資源文件夾中的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<username>Tom</username>
<password>123</password>
</user>
<user>
<username>Moc</username>
<password>1234</password>
</user>
</users>
用戶類
@JacksonXmlRootElement(localName = "users")
@Data
@NoArgsConstructor
public class Users {
@JacksonXmlElementWrapper(useWrapping = false)
private List<User> user;
public Users(List<User> newUser) {
this.user = newUser;
}
public List<User> getUser() {
return user;
}
public void setUser(List<User> user) {
this.user = user;
}
}
用戶類
@Data
public class User
{
@Id @GeneratedValue(strategy= GenerationType.IDENTITY)
//defining id as column name
@Column
private int id;
//defining name as column name
@Column
private String username;
//defining password column
@Column
private String password;
}
您可以使用 Apache 的
FileUtils<\/code> 。
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.