-1

私のコードは、私が達成しようとしていることに適切に対処していないようです。

  • よく壊れて分離された文字列の代わりに長い文字列
  • 「セパレータ」を適切に処理しません(「、」の代わりに「、」を生成します)
  • 'optional' も (" '" の代わりに ' を生成)

現在の結果:

LOAD DATA INFILE 'max.csv'BADFILE 'max.bad'DISCARDFILE 
'max.dis' APPEND INTO TABLEADDRESSfields terminated by,optionally enclosed  
 by'(ID,Name,sex)

意図した結果は次のようになります

これを行う、または上記のコードを改善するより良い方法はありますか

4

3 に答える 3

2

うん。文字を使用してファイル内の新しい行を開始し、文字を として\nエスケープします。また、各変数の後にスペースを追加する必要があります。"\"

content = " LOAD DATA\nINFILE "+ fileName + " BADFILE "+ badName + " DISCARDFILE " + 
discardName + "\n\nAPPEND\nINTO TABLE "+ table + "\n fields terminated by \"" + separator 
+ "\" optionally enclosed by '" + optional + "'\n (" + column + ")";

これは、、、および名前の前後に引用符が含まれていることを前提fileNameとしています。badNamediscardName

于 2012-09-12T00:42:18.407 に答える
1

車輪を再発明しないでください... apache commons-io ライブラリは、これらすべてを 1 行で実行します。

FileUtils.write(new File(controlName), content);

のjavadocは次のFileUtils.write(File, CharSequence)とおりです。

ファイルが存在しない場合、ファイルを作成するファイルに CharSequence を書き込みます

于 2012-09-12T00:42:18.900 に答える
0

新しい行を挿入するには、たとえば、ウィンドウに \n または \r\n を使用する必要があります

  discardName + "\n"  //New line here
"APPEND INTO TABLE"

一方、二重引用符記号の場合は、コンマの周りに \" と具体的に入力する必要があります。

"fields terminated by \"" + separator +"\""

これはこの「、」を生成します。これは、オプションの変数が必要とするものに似ています

于 2012-09-12T00:58:30.390 に答える