java编程 如何将println输出的内容写入到txt文本中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java编程 如何将println输出的内容写入到txt文本中相关的知识,希望对你有一定的参考价值。

代码如下,如何将结果输出到txt文本中
public class fencisuanfa

public static void main(String[] args) throws IOException

String text="java编程 如何将println输出的内容写入到txt文本中" ;
//创建分词对象
Analyzer anal=new IKAnalyzer(true);
StringReader reader=new StringReader(text);
//分词
TokenStream ts=anal.tokenStream("", reader);
CharTermAttribute term=ts.getAttribute(CharTermAttribute.class);
//遍历分词数据
while(ts.incrementToken())
System.out.print(term.toString()+" ");

reader.close();



实现者加分!
跪求大神!

如果你从命令行运行,那么可以java fencisuanfa > out.txt

否则可以用

BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
把 System.out.println(line);
改成
out.write(line+"\n")追问

加上这么一句后还是不行    该怎么修改呢

追答

你把整个代码贴出来看看

追问

追答

在TokenStream ts=anal.tokenStream("", reader);
加一行String str = "";

把System.out.print(term.toString() + " ");
改成
str += term.toString() + " ";

把try里的那个term.toString() 改成str

参考技术A da大啊啊啊啊啊啊啊啊啊啊啊 参考技术B 用java的流操作。追问

具体该怎么弄呢 刚接触java 对流不是很清楚

是这样么

追答

是的。

追问

但是输出的文本是空白的

如何将控制台内容重定向到 Java 中的 textArea?

【中文标题】如何将控制台内容重定向到 Java 中的 textArea?【英文标题】:How to redirect console content to a textArea in Java? 【发布时间】:2011-07-03 17:15:16 【问题描述】:

我正在尝试在 java 的 textArea 中获取控制台的内容。

例如,如果我们有这段代码,

class FirstApp 
    public static void main (String[] args)
        System.out.println("Hello World");
    

我想将“Hello World”输出到 textArea,我必须选择什么 actionPerformed?

【问题讨论】:

【参考方案1】:

我找到了这个简单的解决方案:

首先,你必须创建一个类来替换标准输出:

public class CustomOutputStream extends OutputStream 
    private JTextArea textArea;

    public CustomOutputStream(JTextArea textArea) 
        this.textArea = textArea;
    

    @Override
    public void write(int b) throws IOException 
        // redirects data to the text area
        textArea.append(String.valueOf((char)b));
        // scrolls the text area to the end of data
        textArea.setCaretPosition(textArea.getDocument().getLength());
        // keeps the textArea up to date
        textArea.update(textArea.getGraphics());
    

然后你替换标准如下:

JTextArea textArea = new JTextArea(50, 10);
PrintStream printStream = new PrintStream(new CustomOutputStream(textArea));
System.setOut(printStream);
System.setErr(printStream);

问题是所有的输出将只显示在文本区域。

带有示例的来源:http://www.codejava.net/java-se/swing/redirect-standard-output-streams-to-jtextarea

【讨论】:

这几乎是完美的,但是每当控制台输出时,textarea 就会闪现一堆。而不是追加,而是使用textArea.setText(textArea.getText() + String.valueOf((char)paramInt));,它不会像原来的System.out那样闪烁和流动。 您可能必须使用 SwingUtilities.invokeLater() 才能工作。【参考方案2】:

Message Console 显示了一种解决方案。

【讨论】:

【参考方案3】:

like this http://img122.imageshack.us/img122/5692/dibujoof2.png

Create Java console inside a GUI panel

【讨论】:

【参考方案4】:

您可以通过将System OutputStream 设置为PipedOutputStream 并将其连接到您从中读取的PipedInputStream 来将文本添加到您的组件,例如

PipedOutputStream pOut = new PipedOutputStream();   
System.setOut(new PrintStream(pOut));   
PipedInputStream pIn = new PipedInputStream(pOut);  
BufferedReader reader = new BufferedReader(new InputStreamReader(pIn));

你看过下面的链接吗?如果没有,那么你必须。

Print to textArea instead of console in eclipse ? Redirecting all console o/p to GUI textbox Simple java console - Swing based

【讨论】:

【参考方案5】:

您必须将System.out 重定向到PrintStream 的自定义、可观察子类,以便添加到该流中的每个字符或行都可以更新 textArea 的内容(我猜,这是一个 AWT 或 Swing组件)

PrintStream 实例可以用ByteArrayOutputStream 创建,它会收集重定向的System.out 的输出

【讨论】:

以上是关于java编程 如何将println输出的内容写入到txt文本中的主要内容,如果未能解决你的问题,请参考以下文章

Java中的小问题:读出file1.txt的内容,输出到标准设备,验证写入的内容。

使用java的输入,输出流将一个文本文件的内容按行读出,每读一行就顺序添加行号,并写入到另一个文件

如何将所有系统输出写入JAVA中的文件?

java 网络编程-TCP-上传文件

C++ 如何将一个文件里的数据写入到另一个文件里?

java输入的内容与输出的结果不一样?