2017-04-16 13 views
0

私は入力ファイルから、曜日(1-7)とその日の気温の2つのフィールドを持つプログラムを持っています。次にそれらを配列(highArray、lowArray)に入れ、毎日のHigh、Low、totalおよびAverageの温度を決定し、それらを出力ファイルに書き込みます。私が抱えている問題は、出力ファイルに配列の内容を書き込む方法です。私は週の曜日を次のように書くことができます:myOutput.writeInt(dow); OutputクラスINTが配列で動作しないことに気がついたので、どのようにして配列の内容をファイルに書き込むことができますか? (highArray、lowArray)は、以下の私のCODE出力ファイルに配列の内容を書き込む方法は?

package dow; 

import java.util.Arrays; 

public class DOW 
{ 
    public static void main(String[] args) 
    { 
     // INITIALIZATION 
     InputFile myInput = new InputFile("in.txt"); 
     OutputFile myOutput = new OutputFile("out.txt"); 

     int dow=0; 
     int temperature = 0; 
     int[] highArray = new int [8]; 
     int[] lowArray = new int [8]; 
     int[] countArray = new int [8]; 
     int[] totalArray = new int [8]; 

     // initialize array 
     for (dow = 0; dow <8; dow++) 
     { 
      totalArray [dow]= 0; 
      countArray [dow]= 0; 
      highArray [dow]= -999; 
      lowArray [dow]= 999;    
     } 

     while (!myInput.eof()) 
     { 
      dow = myInput.readInt(); 
      temperature = myInput.readInt(); 
      if (temperature > highArray[dow]) // High Per Day 
      { 
       highArray [dow] = temperature; 
      } 
      if (temperature < lowArray [dow]) // Low Per DAy 
      { 
       lowArray[dow] = temperature; 
      } 

      countArray [dow] = countArray[dow] +1; 
      totalArray[dow] = totalArray [dow] + temperature; 

      System.out.println(dow); 
     } 
     System.out.println(Arrays.toString(lowArray)); 
     System.out.println(Arrays.toString(highArray)); 
     System.out.println(Arrays.toString(totalArray)); 
     System.out.println(Arrays.toString(countArray));     

     //OUTPUT LOOP    

     for(dow = 1; dow < 8; dow++) 
     { 
      outputFile.println(highArray[dow]); 
     } 

     myOutput.writeInt(dow); 

     // myOutput.write(highArray);   
     // myOutput.writeInt(totalArray); 
     // myOutput.writeEOL(countArray); 
     // myOutput.writeInt (temperature); 

     myOutput.close(); 
    }  
} 
//END OF MAIN 
+0

これは、関連する 'javascript'ではありませんので、私は、タグを削除しました。 'javascript!== java' – Ricky

+0

@Ricky実際に'!= 'ではなく'!== ':P –

+0

ファイルに書きたい内容は何ですか? 'Arrays.toString(highArray)'形式はあなたのニーズを満たしていませんか? –

答えて

0
  • 私は非常にBufferedReaderBufferedWriterの代わりに、InputFileOutputFileを使用することをお勧めしています。

  • int配列のすべての値を0に初期化することは、0,がすべて0を出力するため、簡単です。 intはJavaのプリミティブ型なので、常に0に初期化され、nullにはできません。これは配列にも適用されます。

例:

package dow; 

import java.util.Arrays; 

public class DOW 
{ 
    public static void main(String[] args) 
    { 
     BufferedReader reader = new BufferedReader(new FileReader("in.txt")); 
     BufferedWriter writer = new BufferedWriter(new FileWriter("out.txt")); 

     int dow = 0; 
     int temperature = 0; 
     int[] highArray = new int [8]; 
     int[] lowArray = new int [8]; 
     int[] countArray = new int [8]; 
     int[] totalArray = new int [8]; 

     // initialize array 
     for (dow = 0; dow <8; dow++) 
     { 
      highArray [dow]= -999; 
      lowArray [dow]= 999; 
     } 

     String nextLine; 
     while ((nextLine = reader.nextLine()) != null && !nextLine.isEmpty()) 
     { 
      //DO STUFF 
     } 
     reader.close(); 

     writer.write(Arrays.toString(highArray)); 

     writer.close(); 
    } 
} 
関連する問題