2012-06-10 2 views
0

Java에서 작성자가 첫 번째 행과 열에 대해 ArrayList의 정수 값을 가져오고 나머지는 float[][]의 정수 값을 가져 와서 CSV 형식으로 작성합니다. 이 첫 번째 열이 이상해지고 문제를 찾을 수 없습니다. 어떤 제안이나 도움이있어서 정말 행복합니다.출력의 Java writer 첫 번째 문자 (int)가 잘못되었습니다.

public static void resulttofile(List<Nm_item> nmvector, 
     float[][] cor_matrix, String filename) { 
    try { 
     FileWriter writer = new FileWriter(new File(filename + ".csv")); 
     for (int i = nmvector.get(0).row; i <= nmvector 
       .get(nmvector.size() - 1).row; i++) { 
      writer.write(sepw + nmvector.get(i).nm); 
     } 
     writer.write(System.getProperty("line.separator")); 
     for (int i = nmvector.get(0).row; i <= nmvector 
       .get(nmvector.size() - 1).row; i++) { 
      writer.write(nmvector.get(i).nm); 

      for (int j = nmvector.get(0).row; j <= nmvector.get(nmvector 
        .size() - 1).row; j++) { 
       writer.write(sepw + cor_matrix[i][j]); 
      } 
      writer.write(System.getProperty("line.separator")); 
     } 

     writer.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println("Results saved to " + filename + ".csv"); 
} 

출력 (자른) :

 350 351 352 353 
? 0 0.003 0.171 0.001 
? 0.003 0 0.274 0 
è 0.163 0.271 0 0.345 
Ü 0 0 0.35 0 
? 0.008 0.019 0.326 0.044 
? 0.008 0.016 0.199 0.015 
? 0.015 0.037 0.361 0.04 
? 0.029 0.023 0.171 0.023 
? 0.038 0.042 0.186 0.038 

답변

1

시도 : OldCurmudgeon 말한대로

writer.write(Integer.toString(nmvector.get(i).nm)); 

또는 :

writer.write("" + nmvector.get(i).nm); 

점 여기 내 코드입니다 그 FileWriter에는 하나 이상의가 들어 있습니다.방법. write(int)write(String)이 있습니다. 첫 번째 숫자는 숫자를 쓰지 않고 주어진 숫자에 해당하는 문자를 씁니다. 예를 들어 writer.write(88)이 'X'문자를 출력하면 writer.write(89)은 'Y'를 출력하고 어떤 문자를 writer.write(90)이 줄 수 있는지 추측 할 수 있습니다. 올바른 write() 메서드가 호출되도록 정수를 String으로 변환해야합니다.

두 번째 형식 인 writer.write("" + number)은 문자열에 숫자를 추가 할 때 Java 컴파일러가 숫자를 자동으로 String으로 변환하기 때문에 효과가 있습니다. 이 때문에 writer.write(sepw + nmvector.get(i).nm); 작동하지만 않습니다.

+0

또는'writer.write (""+ nmvector.get (i) .nm); ' – OldCurmudgeon

+0

두 작품 모두 고맙습니다. 왜냐하면 당신은 int로 라인을 열 수 없기 때문입니다. –

+0

Hi Helge, 제 답변에 대한 설명을 추가했습니다. 희망이 도움이됩니다. – dslh

관련 문제