在servlet中写入文件时出错

时间:2015-03-11 05:05:59

标签: java file jsp servlets

我已经从servlet中的doPost方法创建了一个文件,但是我无法将数据写入它。我无法弄清楚错误是什么。顺便说一下文件正在创建

// TODO Auto-generated method stub
        response.setContentType("text/html");
        String name=request.getParameter("name");
        response.getWriter().println(name);
        File filename= new File("/home/ksampath/D3/DedupeEngine/cache3.txt");
        filename.createNewFile();
        BufferedWriter out = null;
        try
        {
            System.out.println("I am going to create a new file");
            FileWriter fw=new FileWriter("cache3.txt",true);
            out=new BufferedWriter(fw);
            out.write("hello world");
            out.write(name);
        }

        catch(IOException e)
        {
            System.err.println("Error"+ e.getMessage());
        }
        finally
        {
            if(out!=null)
            {
                out.close();
            }
        }
        /*
        System.out.println("Lets us check whether it works");
        PrintWriter writer=response.getWriter();
        writer.println("<h3>hello This is my first servlet</h3>");*/
    }

2 个答案:

答案 0 :(得分:1)

尝试

FileWriter fw=new FileWriter(filename,true);   //where filename is that File object
  

public FileWriter(文件文件,             布尔附加)              抛出IOException

     

在给定File对象的情况下构造FileWriter对象。如果是第二个   参数为true,然后将字节写入文件的末尾   而不是开始。

Java Docs

答案 1 :(得分:1)

@singhakash提供的解决方案是正确的。

您可以使用

FileWriter fw=new FileWriter(filename,true);

并且如上所述,如果第二个参数为真,则字节将在末尾附加。

或者您可以使用File的getAbsoluteFile()方法

FileWriter fw=new FileWriter(filename.getAbsoluteFile());
  

getAbsoluteFile()方法将返回,绝对抽象   pathname表示与此抽象路径名(JavaDocs

相同的文件或目录