Java 将ArrayList写入Web服务中的文件

Java 将ArrayList写入Web服务中的文件,java,web-services,web-applications,file-io,jersey,Java,Web Services,Web Applications,File Io,Jersey,我想写一个ArrayList文件data.txtmy code: try{ File destination = new File("data.txt"); ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(destination)); os.writeObject(userList); os.close(); } catch.... 这没有任何例外,什么都没有。。代码正常

我想写一个ArrayList文件
data.txt
my code:

try{
    File destination = new File("data.txt");
    ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(destination));  
    os.writeObject(userList);
    os.close();
} catch....
这没有任何例外,什么都没有。。代码正常运行。这段代码对Web服务不起作用吗?(REST@Jersey,非常确定与此无关)

这里是更新的代码:

FileOutputStream userfile = new FileOutputStream("C:\\user.dat");
ObjectOutputStream userstream = new ObjectOutputStream(userfile);
userstream.writeObject(userList);
userstream.close();
请注意“C:\data.dat”代码不能仅使用data.dat运行(在源文件夹中创建的文件不可见)

对于输入,代码如下所示:

ArrayList<User> dataList; // ** User is a custom Class
....
FileInputStream userfile = new FileInputStream("C:\\user.dat");
ObjectInputStream usersteam = new ObjectInputStream(userfile);
dataList = (ArrayList<User>)usersteam.readObject();
usersteam.close();
ArrayList dataList;//**用户是自定义类
....
FileInputStream用户文件=新的FileInputStream(“C:\\user.dat”);
ObjectInputStream usersteam=新的ObjectInputStream(用户文件);
dataList=(ArrayList)usersteam.readObject();
usersteam.close();

使用文件上载servlet而不是JAX-RS enpoint。从长远来看,这更容易。与从arraylist写入文件相比,此代码将把它写入文件,并检查文件是否已上载

private List<File> files=new ArrayList<File>();
  private String filename="yourfilename.dat"

     private boolean fileHasAlreadyBeenUploaded() throws IOException, ClassNotFoundException {

    boolean hasFileAlreadyBeenUploaded=false;
    File currentfile=new File(fileName);
    if(!currentfile.exists()){
        currentfile.createNewFile();
        ObjectOutputStream output 
        = new ObjectOutputStream(
              new FileOutputStream(currentfile));
        files.add(currentFile);
        output.writeObject(currentFile);
        output.close();
        hasFileAlreadyBeenUploaded=false;
    }
    else{
         ObjectInputStream input 
            = new ObjectInputStream(
                  new FileInputStream(currentfile));

         files = (List<File>) (input.readObject());
         input.close();
        for(int i=0;i<files.size();i++){
            if(FileUtils.contentEquals(files.get(i), currentfile)){
                hasFileAlreadyBeenUploaded=true;
            }   
        }
        if(!hasFileAlreadyBeenUploaded){
            ObjectOutputStream output 
            = new ObjectOutputStream(
                  new FileOutputStream(fileName));
            files.add(currentfile);
            output.writeObject(currentfile);
            output.close();
        }
    }
    return hasFileAlreadyBeenUploaded;

}
private List files=new ArrayList();
私有字符串filename=“yourfilename.dat”
私有布尔文件hasalReadyBeenUpload()引发IOException,ClassNotFoundException{
布尔值HasFileAlReadyBeenUpload=false;
File currentfile=新文件(文件名);
如果(!currentfile.exists()){
currentfile.createNewFile();
ObjectOutputStream输出
=新的ObjectOutputStream(
新文件输出流(currentfile));
添加(当前文件);
output.writeObject(当前文件);
output.close();
HasFileAlReadyBeenUpload=false;
}
否则{
ObjectInputStream输入
=新ObjectInputStream(
新文件输入流(当前文件));
files=(List)(input.readObject());
input.close();

对于(int i=0;i什么是arrayList文件?我想你是指.txt文件。对于.txt文件,为了安全起见,你最好用try/catch来封装如何在jersey中上载文件。try和cache都在那里,data.txt是一个文件,userList是一个数组列表。@smttsp Abobe请阅读.tnx。