我在Tomcat服务器上有以下代码。调用saveUserList方法时似乎什么也没做。它是通过另一个方法调用的,该方法由具有firefox rested扩展名的get request调用。没有错误消息或异常,但未创建或更新文件。
抱歉,如果我的术语不清楚/不正确,我只是在学习其中的大部分内容。
我创建了一个在本地调用saveUserList的测试类,不涉及Tomcat。很好。路径似乎没有问题,因为可以从文件中正常读取getAllUsers方法。仅在通过Tomcat服务器调用文件时才写文件。
package com.tutorialspoint;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
public class UserDao {
public List<User> getAllUsers(){
List<User> userList = null;
try {
File file = new File("/home/quincy/Users.dat");
if (!file.exists()) {
User user = new User(1,"username", "first", "last","password");
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;
}
protected void saveUserList(List<User> userList){
try {
File file = new File("/home/quincy/Users.dat");
FileOutputStream fos;
fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(userList);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
调用saveUserList方法时,它应该在我的主目录中更新或创建User.dat。直接调用时会这样做,但通过Tomcat调用时不会。