【问题标题】:RapidMiner ExecuteProgram Operator Text StreamRapidMiner ExecuteProgram 操作员文本流
【发布时间】:2014-07-09 19:00:59
【问题描述】:

我目前正在使用 RapidMiner 6,在流程结束时,我必须将数据集输出到 Java 程序。

在文档中说:“Write CSV -> Execute Program”之类的过程将通过标准输出将数据集发送到我正在执行的程序,但我的提示是:我怎么知道,在我的 Java程序,数据什么时候发送?

当前程序只是从标准输入中读取并将写入的内容保存为 csv 文件。代码是:

public class WakaMain {

public static void main(String[] args) throws IOException {
    ArrayList<String> input = new ArrayList<String>();
    Scanner in = new Scanner(System.in);
    String inLine = in.nextLine();
    while(inLine != null){
        input.add(inLine);
        inLine = in.nextLine();
    }
    in.close();
    writeStream(input);
    System.out.println("Done: "+input.size()+" Inputs");
}

public static void writeStream(ArrayList<String> in) throws IOException{
    FileWriter fw = new FileWriter("StreamWriteOutput.csv");
    PrintWriter pw = new PrintWriter(fw);
    for(int i = 0; i<in.size();i++){
        pw.println(in.get(i));
    }
    pw.close();
}}

我最初认为“ inLine != null ”会像读取文本文件时一样工作,但事实并非如此。

你知道我该怎么做吗?

谢谢各位。

【问题讨论】:

    标签: java input stream operator-keyword rapidminer


    【解决方案1】:

    你可以使用hasNextLine函数

    public static void main(String[] args) throws IOException {
        ArrayList<String> input = new ArrayList<String>();
        Scanner in = new Scanner(System.in);
        String inLine;
        while(in.hasNextLine()){
            if(in.nextLine() != null){
            inLine =   in.nextLine();
            input.add(inLine);
            }
    
        }
        in.close();
        //writeStream(input);
        System.out.println("Done: "+input.size()+" Inputs");
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多