2016-05-20 3 views
0

私はJavaの問題を書いて、単一の列からデータを表形式に分割しました。 TalendのJavaコンポーネントで同じコードを使用するにはどうしたらいいですか?Talend Javaカスタムコンポーネントで使用するJavaコード

入力ファイルには、次の形式のデータを持つ列があります。 1:Apple、2:Mano、3:Cheery、4:Berry、

私はJavaで書かれているコードは次のとおりです。

package com.test; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import java.text.ParseException; 

public class DateDemo { 

     public static void main(String[] args) throws ParseException, IOException { 
       File file =new File("File.csv"); 
       BufferedReader br = null; 
       br = new BufferedReader(new FileReader(file)); 
       String line = ""; 
       while ((line = br.readLine()) != null){ 
        System.out.println(line); 
        String[] csvDataArray= line.split(";"); 
          for(int i=0;i<csvDataArray.length;i++) 
          { 
            String[] csvData= csvDataArray[i].split(":"); 
            String id = csvData[0]; 
            String name = csvData[1]; 
            System.out.println("ID "+id+" Name "+name); 
          } 
       } 

     } 

} 

私はこのコードから取得する出力は以下の通りです:

ID 1名アップル

ID 2名マンゴー

ID 3名前桜

ID 4名前ベリー

どうすればTalendに実装できますか?

私たちは以下のコンポーネントを使用していると仮定: tfileinput ---メイン--- tJava - メイン - tFileoutput

をしかし、私はTjavaで上記のコードを貼り付けていた場合、それは私にエラーを与えています、それは日食でうまく動作している間。

どのように私はTalendでこれを達成できますか?

答えて

0

説明するタスクは、入力データの標準正規化のようです。 tJavaコンポーネントを使用することは間違いなくこれを行う方法の1つになりますが(Condingの問題に取り組むならば)、Talendsの組み込みコンポーネントの1つを使用することをお勧めします。 tNormalizeを見てください。

tNormalize component

それはあなたの文字列とに分割される文字列を含む入力欄を分割する区切り文字を定義することができます。

+0

ありがとう@markus。私は半分の要件である異なる行にデータを分割することができます。しかし、データをコロンに基づいて2列にしたいと思っていました。現時点では、セミコロンに基づいて別々の行を取得していますが、一度入力を行に分けると、ニュース行を2つの列に分割したいと考えています。どうすればこのことができるのですか? – user3454116

関連する問題