1

String[]CSV ファイルに書き込んで、Excel などのスプレッドシート プログラムで表示したい1 次元配列 があります。ただし、この配列のサイズ/長さは許容される列数に収まるには大きすぎますが、許容される行数には収まるほど小さいです。

では、行単位ではなく列単位で書くにはどうすればよいでしょうか。

私が使用している現在のコード:

import au.com.bytecode.opencsv.CSVWriter;

public class test {
    public static void main(String[] args) [
        CSVWriter writer2 = new CSVWriter(new FileWriter("testing.csv"), '\t');

        String[] string = new String[10];
        for(int i = 0; i < 10; i++) {
            string[i] = "Testing";
        }

        writer2.writeNext(string); //  !!EXPORTS AS ROW AND NOT A COLUMN!! //
        writer2.close();




    }
}
4

2 に答える 2

1

ファイルに各文字列を別々の行に書き込むにはString[]、CSVWriter は必要ありません...普通の古いもので十分FileOutputStreamです

public static class test {
  public static void main(String[] args) throws UnsupportedEncodingException, IOException {
    String[] strings = new String[10];
    for (int i = 0; i < 10; i++) {
      strings[i] = "Testing";
    }

    OutputStream output = new FileOutputStream("testing.csv");
    try {
      for (String s : strings) {
        output.write(s.getBytes("UTF-8")); // don't rely on default encoding!
      }
    }
    finally {
      output.close();
    }
  }
}

ただし、本当に を使用して書きたい場合CSVWriter:

public static class test {
  public static void main(String[] args) throws UnsupportedEncodingException, IOException {
    CSVWriter writer2 = new CSVWriter(new FileWriter("testing.csv"), '\t');

    String[] strings = new String[10];
    for (int i = 0; i < 10; i++) {
      strings[i] = "Testing";
    }

    String[] wrap = new String[1]; //probably saving on GC

    for (String s: strings) {
      wrap[0]=s;
      writer2.writeNext(wrap);
    }
    writer2.close();

  }

}
于 2013-09-13T11:57:33.767 に答える
0

writeNext 1 行書き込みます。2回呼び出すと2行、10回呼び出すと10行書きますよね?:)

編集:さて、これを試してみましょう:

public void writeLines(String[] array, CSVWriter writer) {
    for (final String oneElement : array) {
        writer.writeNext(new String[] {oneElement});
    }
}

これで、メソッドを呼び出してwriteLines一連の行を書き込むことができます。あなたの例を挙げると:

import au.com.bytecode.opencsv.CSVWriter;

public class test {
    public static void main(String[] args) {
        CSVWriter writer2 = new CSVWriter(new FileWriter("testing.csv"), '\t');

        String[] string = new String[10];
        for(int i = 0; i < 10; i++) {
            string[i] = "Testing";
        }

        writer2.writeLines(string); // This will write a column
        writer2.close();
    }
}
于 2013-09-13T12:00:04.930 に答える