2015-02-08 33 views
0

我有一個數組,我創建了一個文件的內容。這個數組不在我的主要方法中,而是另一種方法。我無法弄清楚如何將保存文件內容的數組複製到我的主要方法中的數組中,以便我可以從那裏操作/追加信息。我收到一個錯誤,說它無法找到變量dataPieces。有人可以幫我解決這個問題嗎?這甚至是處理文件的最佳方式,以便我可以向用戶顯示信息並讓它們追加它? 感謝如何將數組的內容從其他方法複製到主方法內的數組中?

/** 
Add in javadoc comments 
*/ 


//import statements 
    import java.io.*; 
    import java.util.Scanner; 
    import java.util.ArrayList; 

public class Try { 
    public static void main(String[] args){ 
     String dataHolder[] = createFile(); 
     System.out.println(dataHolder); 
    } 

    public static String[] createFile(){ 
     //create file holding inventory information 
     String dataPieces[] = new String[10]; 
     try{ 
      PrintWriter outputFile = new PrintWriter("inventory.txt"); 
      outputFile.println("3000.0"); 
      outputFile.println("Lamps 15.3 400"); 
      outputFile.println("Chairs 19.95 250"); 
      outputFile.print("Desks 95.0 300"); 
      int i =0; 
      outputFile.close(); 

      File myFile = new File("inventory.txt"); 
      Scanner inputFile = new Scanner(myFile); 

      while(inputFile.hasNext() && i<dataPieces.length){ 
       dataPieces[i] = inputFile.next(); 
       i++; 
      } 
      inputFile.close(); 
     } 
     catch(IOException e){ 
      System.out.println("File cannot be created."); //what to say???????????<<<<<<<< 
     } 
     return dataPieces; 
    } 
} 

回答

0

createFile()方法已經返回一個數組,所以你的主要方法應該只分配一個數組變量:

public static void main(String[] args){ 
    String[] dataHolder = createFile(); 
    ... 
} 

有沒有理由罵createFile()多次。

0

您有類似:

for(int i=0; i<dataHolder.length; i++){ 
    dataHolder[i] = createFile(dataPieces); 
} 

在這裏,您試圖後,閱讀相同的10次環的上述這是會回報你同樣的數據來創建inventory.txt文件的10倍。通過讀取和寫入文件只有一次,然後在另一種方法對陣列操作進一步

dataHolder = createFile(); 
for(int i=0; i<dataHolder.length; i++){ 
    ...do something with dataPieces which is referred by dataHolder now. 
} 

有:

所以你的方法createFile正在恢復即dataPieces一個數組,你可以只改變你的for循環像。

相關問題