簡體   English   中英

"Java Spring - 寫入資源文件夾中的現有文件"

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM