Как удалить записанный файл после запуска метода? - PullRequest
0 голосов
/ 25 октября 2019

Я использую некоторые веб-службы, при каждом запросе GET он записывает в файл, а при каждом запросе POST обновляет этот файл. Я хочу удалить этот файл примерно через 15 секунд после обновления (запрос POST). Я попытался попробовать и, наконец, обойтись POST-запросом, но без радости он удаляется до завершения работы метода.

Как мне этого добиться?

@POST
@Path("/postuser")
@Consumes("application/json")
@Produces(MediaType.APPLICATION_JSON)
public Response createUser(User user) throws Exception {

    String result = null;
    int id = user.getId();
    String fullName = user.getFullName();
    String userName = user.getUserName();
    String password = user.getPassword();
    String ipAddress = user.getIpAddress();

    if (!fullName.equals("XXXX")) {
        result = "Name has to be XXXX ... you posted  " + fullName;
    } else {
        result = "ID: " + id + "\n Name: " + fullName + "\n Username: " + userName + "\n Password: " + password
                + "\n IPAddress: " + ipAddress;
        userDao.updateUser(user);
    }

    return Response.status(201).entity(result).build();
}

public void deleteUsersFile() {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        public void run() {
            File file = new File("xxxxx");
            file.delete();
        }
    }, 0, 15*1000);
}

public int updateUser(User pUser) {
    List<User> userList = getAllUsers();
    for (User user : userList) {
        if (user.getId() == pUser.getId()) {
            int index = userList.indexOf(user);
            userList.set(index, pUser);
            saveUserList(userList);
            return 1;
        }
    }
    return 0;
}

public List<User> getAllUsers() {
    List<User> userList = null;
    try {
        File file = new File("xxxx");
        if (!file.exists()) {
            user = new User(1, "xxxx", "xxx", "xx", "xxxx");
            userList = new ArrayList<User>();
            userList.add(user);
            saveUserList(userList);
        } else {
            FileInputStream fis = new FileInputStream(file);
            ObjectInputStream ois = new ObjectInputStream(fis);
            userList = (List<User>) ois.readObject();
            ois.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return userList;
}
...