将JSF inputText的内容写入文件
我需要弄清楚将JSF inpuText的内容写入文件的方法。我想构建一个小UI,它将为用户提供以更简单的方式(因此用户界面)编写一些数学公式的可能性,并能够将它们保存为.txt(或类似文件)文件。我一直在想,现在约8-10小时,我已经得到了最好的是:将JSF inputText的内容写入文件
<h:inputText value="#{output.inputContent}" id="inputContent"></h:inputText>
和bean:
import com.sun.faces.taglib.html_basic.InputTextTag;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.servlet.http.HttpServletRequest;
@ManagedBean(name = "output")
@SessionScoped
public class OutputHandler {
public String inputContent;
public String getinputContent() {
return inputContent;
}
public void setinputContent(String inputContent) {
this.inputContent = inputContent;
}
public void writeStream()
{
try{
FileOutputStream fos=new FileOutputStream("outputOne.txt");
ObjectOutputStream output=new ObjectOutputStream(fos);
output.writeObject(inputContent);
}
catch(Exception ex){
System.out.println("Exception is: "+ex);
}
}
}
我敢肯定,大多数我所做的有错了,所以任何帮助将不胜感激,即使它是一些处理类似问题的帖子的方向,所以我可以尝试从那里得到它。我不想被偷东西或什么,问题是我从来没有与JSF合作过(我昨天开始阅读它),所以我说,甚至一些链接到一些文件,可以帮助我(我一直在使用谷歌搜索疯狂,因为我开始)或引导我一点将不胜感激。
With ObjectOutputStream
你基本上是serializing a String
对象到输出。结果是而不是一个带有字符串原始值的可读文本文件。
您需要使用Writer
,其中您将字符串的值传递给。
public void writeStream() throws IOException {
Writer writer = new FileWriter("outputOne.txt");
try {
writer.write(inputContent);
} finally {
writer.close();
}
}
这将最终在一个人类可读的文本文件中的字符串的原始值。
无关的具体问题,请注意,文件IO使用相对路径是一个非常糟糕的主意。你永远不知道它会在哪里结束,在某些环境下工作目录也不可写。始终明确指定一个绝对路径,以现有的和可写的文件夹:
Writer writer = new FileWriter("/path/to/outputOne.txt");
在服务器安装,并从C:\
磁盘执行的Windows环境中,上述路径是基本相同C:\path\to\outputOne.txt
。如有必要,可以将文件夹根目录配置为VM参数或配置文件设置。假设你通过-Doutput.location=/path/to
VM参数,那么你可以使用它如下:
File root = new File(System.getProperty("output.location"));
Writer writer = new FileWriter(new File(root, "outputOne.txt"));
谢谢你的回答,这正是我所寻找的。 – DVM
这是不是写内容到文件?当问问题时,如果某些东西不起作用,说出什么不起作用会很有帮助。如果它是一个web应用程序,并且该用户不在服务器本地,则他们也需要下载该文件。 –