2016-07-21 15 views
2

.txtファイルを作成して書き込みを試みているため、別のプログラムが開いて読み込めるようになりました。問題は、入力されたデータが作成されたファイルに書き込まれていないことです。空の.txtドキュメントです。入力されたデータがファイルに書き込まれていません

import java.util.Scanner; 
import java. io.*; //import class for file input. 
public class inventoryStock 
{ 
    public static void main(String args[]) throws Exception 
    { 
    //Declarations 
    String[] itemName = new String [10]; 
    double[] itemCost = new double [10]; 
    double[] inStockNumber = new double [10]; 
    int counter = 0; 
    //End declarations 

    Scanner input = new Scanner (System.in); 
    //Open output file. 
    FileWriter fw = new FileWriter("updatedStock.txt"); 
    PrintWriter pw = new PrintWriter(fw); 


     do 
     { 
     System.out.print("Enter item name"); 
     pw.println(); 
     itemName[counter] = input.next(); 
     System.out.print("Enter item cost"); 
     pw.println(); 
     itemCost[counter] = input.nextDouble(); 
     System.out.print("Enter Number in stock"); 
     pw.println(); 
     inStockNumber[counter] = input.nextDouble(); 

     counter += 1; 
     }while(counter<10); 
     pw.flush(); 

    pw.close(); 
    System.exit(0); 
    } //End of main method 
} //End of InventoryStock class. 
+0

ようこそスタックオーバーフローへようこそ。問題の解決に役立つ場合は、実際のコードを表示する必要があります。私の頭の上から、おそらくあなたはディスクにバッファをフラッシュしていません。 –

+0

なぜ 'pw.close();'の前に余分な '{'と '} 'が追加されていますか? – Bill

+0

私は初心者であり、前回中括弧を持っていなかったために爆発しました。また、イムラン、私は詳細ループで入力を取得しようとしています。スキャナアイテムを追加する前に、「アイテム名を入力してください」「アイテムコストを入力してください」「在庫を入力してください」 –

答えて

1

あなたが実際に書いたいものを書かなかったようです。以下のコードを試すことができます。

pw.println(itemName[counter] + ", " + itemCost[counter] + ", " + inStockNumber[counter]); 

2つのおすすめ情報があります。

  1. サイズ10はあなたのコードのどこにでもあります。より良い保守性のために、それを単一の変数に抽出する方がよいでしょう。
  2. javaのnaming conventionに従ってください。あなたの場合、クラス名の最初の文字は大文字にする必要があります。 inventoryStockの代わりにInventoryStockを使用してください。

コード全体が以下のようなものであれば、役立つことを願っています。どうも。

import java.util.Scanner; 
import java.io.*; //import class for file input. 

public class InventoryStock { 
    public static void main(String args[]) throws Exception { 

     int size = 10; 
     // Declarations 
     String[] itemName = new String[size]; 
     double[] itemCost = new double[size]; 
     double[] inStockNumber = new double[size]; 
     int counter = 0; 
     // End declarations 

     Scanner input = new Scanner(System.in); 
     // Open output file. 
     FileWriter fw = new FileWriter("updatedStock.txt"); 
     PrintWriter pw = new PrintWriter(fw); 

     { 
      do { 
       System.out.print("Enter item name"); 
       itemName[counter] = input.next(); 
       System.out.print("Enter item cost"); 
       itemCost[counter] = input.nextDouble(); 
       System.out.print("Enter Number in stock"); 
       inStockNumber[counter] = input.nextDouble(); 

       pw.println(itemName[counter] + ", " + itemCost[counter] + ", " + inStockNumber[counter]); 

       counter += 1; 
      } while (counter < size); 
      fw.flush(); 
     } 
     fw.close(); 
     System.exit(0); 
    } // End of main method 
} // End of InventoryStock class. 
+0

これは私が探しているものを得るための素晴らしい方法です。だから、私が持っていたものは間違っていたが、当初考えていたほど悪くはなかった。 Gearon @Gearon –

+0

あなたは大歓迎です。 – Gearon

0

あなたはinput.next()でユーザーの入力をつかむにもかかわらず、実際にファイルに書き込むか、そうでなければ何もしませんPrintWriterを伝える必要があります。次のようなものを試してください:

Scanner input = new Scanner (System.in); 
//Open output file. 
FileWriter fw = new FileWriter("updatedStock.txt"); 
PrintWriter pw = new PrintWriter(fw, true); 

do 
{ 
    System.out.print("Enter item name");  
    itemName[counter] = input.next(); 
    pw.write(itemName[counter]); 
    pw.println(); 

    System.out.print("Enter item cost"); 
    itemCost[counter] = input.nextDouble(); 
    pw.write(String.valueOf(itemCost[counter])); 
    pw.println(); 

    System.out.print("Enter Number in stock"); 
    inStockNumber[counter] = input.nextDouble(); 
    pw.write(String.valueOf(inStockNumber[counter])); 
    pw.println(); 

    counter += 1; 
}while(counter<10); 

pw.flush(); 
pw.close(); 
System.exit(0); 
+0

それは、トリックは本当に助けに感謝しました。私はまだこれらのすべてのトリックと私の希望の効果を得るために使用された言語を学ぼうとしています。私はそれを感謝します。@ quidproquo –

関連する問題