2015-10-18 107 views
1
public static void main(String[] args) throws FileNotFoundException { 

     @SuppressWarnings("unused") 
     Scanner in = new Scanner(System.in); 
     System.out.println("enter filename"); 
     Filename=in.next(); 
     PrintWriter outputFile =new PrintWriter(Filename); 
     outputFile.println(); 
     outputFile.close(); 
     getInput(); 
     display(); 

    } 

    public static void display() throws FileNotFoundException{ 
     for (int i = 0; i < genders.length; i++) { 
      System.out.println(ages[i]+";"+genders[i]+";"+emails[i]+";"+salaries[i]); 
    }} 


    public static void getInput(){ 

     System.out.print("How many users do you wish to enter: "); 
     int num = in.nextInt(); 
     ages= new int[num]; 
     genders = new String[num]; 
     emails = new String[num]; 
     salaries = new double[num]; 

     for (int i = 0; i < num; i++) { 
      System.out.print("Please enter your age for person "+(i+1)+": "); 
      ages[i] = in.nextInt(); 
      while (ages[i]<20 ||ages[i]>30){ 
       System.out.println("invalid age please re enter again"); 
       ages[i] = in.nextInt();} 
      in.nextLine(); 

嘿家伙我试图将用户输入的内容写入文件。我的问题是它创建的文件,但没有写入它。我尝试了各种方法,但没有任何帮助?创建文件没有写入java

+0

坦率地说,您的代码有点混乱,但我仍然试图查看您的代码。别担心,你没有放弃。 – mashedpotats

+3

重复的[http://stackoverflow.com/questions/18070629/how-to-read-from-users-input-in-java-and-write-it-to-a-file](http://stackoverflow .com/questions/18070629/how-to-read-from-users-input-in-java-and-write-it-to-a-file) – nihilon

+0

代码的哪个部分应该将用户输入写入文件?您只能向文件写入一行空白行,其他所有输出都将写入控制台。 – Andreas

回答

0

你的问题在这里得到解答: https://stackoverflow.com/questions/18070629/how-to-read-from-users-input-in-jav‌​a-and-write-it-to-a-file

但概括地说:你是根本创建一个以用户输入命名的文件。您需要将该信息实际写入文件:

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.util.ArrayList; 
import java.util.Scanner; 

public class MainClass { 
    private static String fileName; 
    private static String[] genders, emails; 
    private static double salaries[]; 
    private static int userCount; 
    private static int[] ages; 
    private static Scanner in = new Scanner(System.in); 

    public static void main(String[] args) throws FileNotFoundException { 

     System.out.println("enter filename"); 
     fileName = in.nextLine(); 
     File myFile = new File(fileName); 
     getInput(); 
     display(); 
     FileWriter fWriter = null; 
     BufferedWriter writer = null; 
     try { 
      fWriter = new FileWriter(myFile); 
      writer = new BufferedWriter(fWriter); 
      writer.write(display().toString()); 
      writer.newLine(); 
      writer.close(); 
     } catch (Exception e) { 
      System.out.println("Error!"); 
     } 
    } 

    public static ArrayList<String> display() throws FileNotFoundException { 
     ArrayList<String> data = new ArrayList<String>(); 

     for (int i = 0; i < genders.length; i++) { 

      data.add(ages[i] + ";" + genders[i] + ";" + emails[i] + 
        ";" + salaries[i]); 
     } 

     for (int i = 0; i < genders.length; i++) { 

      System.out.println(ages[i] + ";" + genders[i] + ";" + emails[i] + 
           ";" + salaries[i]); 
     } 
     return data; 
    } 

    private static void getInput() { 
     System.out.print("How many users do you wish to enter: "); 
     int userCount = in.nextInt(); 
     ages = new int[userCount]; 
     genders = new String[userCount]; 
     emails = new String[userCount]; 
     salaries = new double[userCount]; 

     for (int i = 0; i < userCount; i++) { 
      System.out.print("Please enter your age for person " + (i + 1) + 
          ": "); 
      ages[i] = in.nextInt(); 
      while (ages[i] < 20 || ages[i] > 30) { 
       System.out.println("invalid age please re enter again"); 
       ages[i] = in.nextInt(); 
      } 
      in.nextLine(); 
     } 
    } 
} 
+0

我试过这个它不工作。它仍然不会打印任何内容到文本文件 – user3607224

+0

@ user3607224,编辑后包含一个完整的工作示例。在这一点上你应该做的就是添加适当的部分,以获得性别,电子邮件和工资到'getInput()' – nihilon

2
Filename=in.next(); 
    PrintWriter outputFile =new PrintWriter(Filename); 
    outputFile.println(); 

我认为你正在创建与用户输入的名称的文件,并打印一个空行吧