输入的数据不是写入文件

时间:2016-07-21 23:46:16

标签: java

我正在尝试创建并写入.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.

2 个答案:

答案 0 :(得分:1)

您似乎并没有真正写下您要提交的内容。您可以尝试以下代码。

events {
    worker_connections  1024;
}

http {

    upstream nodejs {
           server <<INTERNAL-PRIVATE-IP>>:3000; #3000 is the default port 
    }

    ...

    server {
        listen 80;
        server_name <<PUBLIC-IP>>;
        return 301 $scheme://<<DOMAIN>>$request_uri;
    }

    server {
        listen 443;
        ssl on;
                server_name <<DOMAIN>>.com www.<<DOMAIN>>.com;

                ...

                location / {
                    proxy_pass http://nodejs;
                    proxy_redirect off;
                    proxy_set_header Host $host ;
                    proxy_set_header X-Real-IP $remote_addr ;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
                    proxy_set_header X-Forwarded-Proto https;
            }

            error_page 501 502 503 /500.html;

            location = /500.html {
                root /usr/share/nginx/html;
            }

        }
}

给你两个建议。

  1. 由于代码中的大小为10。为了更好的可维护性,您最好将其提取到单个变量中。
  2. 请关注java的naming convention。对于您的情况,类名的第一个字母应该大写。使用InventoryStock而不是inventoryStock。
  3. 整个代码如下所示,希望它会有所帮助。 THX。

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

答案 1 :(得分:0)

您必须实际告诉PrintWriter写入文件,否则即使您使用input.next()获取用户的输入,也无法执行任何操作。尝试这样的事情:

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);