首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSF inputText的内容写入文件

将JSF inputText的内容写入文件
EN

Stack Overflow用户
提问于 2011-10-11 20:37:18
回答 1查看 3K关注 0票数 4

我需要找出一种将JSF inpuText的内容写入文件的方法。我想建立一个小的用户界面,将提供给用户以一种更容易的方式(因此的用户界面)编写一些数学公式的可能性,并能够将它们保存到一个.txt (或类似的)文件。我已经尝试了大约8-10个小时,我得到的最好的结果是:

代码语言:javascript
复制
<h:inputText value="#{output.inputContent}" id="inputContent"></h:inputText>

和Bean:

代码语言:javascript
复制
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(我昨天开始读到它),所以正如我所说的,即使是一些文档的链接也可以帮助我(我从一开始就疯狂地搜索)或指导我一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-11 21:09:40

使用ObjectOutputStream,您基本上可以将一个String object serializing到输出。结果是而不是,这是一个具有string原始值的人类可读的文本文件。

您需要使用Writer将字符串值传递给。

代码语言:javascript
复制
public void writeStream() throws IOException {
    Writer writer = new FileWriter("outputOne.txt");

    try {
        writer.write(inputContent);
    } finally {
        writer.close();
    }
}

这将最终生成一个人类可读的文本文件,其中包含字符串的原始值。

无关的具体问题,请注意,在文件IO中使用相对路径是一个非常糟糕的主意。您永远不会确切地知道它会在哪里结束,而且在某些环境中,工作目录也是不可写的。始终显式指定现有可写文件夹的绝对路径:

代码语言:javascript
复制
    Writer writer = new FileWriter("/path/to/outputOne.txt");

在从C:\磁盘安装并执行服务器的Windows环境中,上述路径与C:\path\to\outputOne.txt基本相同。如有必要,您可以将文件夹根目录配置为VM参数或配置文件设置。假设您传递了-Doutput.location=/path/to VM参数,则可以按如下方式使用它:

代码语言:javascript
复制
    File root = new File(System.getProperty("output.location"));
    Writer writer = new FileWriter(new File(root, "outputOne.txt"));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7726130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档