我很想知道如何将用户输入带入不同的excel colums。

时间:2017-05-03 02:15:51

标签: java csv io

这个项目的目标是制作食物日记。

这本日记应包含您在白天消费的早餐,午餐,晚餐和小吃。用户应该能够输入他们的食物并将其保存为CSV文件。 这是我到目前为止所拥有的 当我将变量f和t写入excel时,它们位于同一个单元格中,我如何才能将它们放在单独的列中

    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;

    public class App {


    public static void main(String[] args) {
    BufferedWriter bw = null;
    FileWriter fw = null;
    FileOutputStream FileName = new FileOutputStream( "MyFooDiary.csv");
    System.out.println("Welcome to your food diary");
    System.out.println("What is the name of your Food?");
    Scanner x = new Scanner(System.in);
    String f = x.nextLine();
    System.out.println("Was this breakfast, lunch, dinner, or a snack");
    Scanner y = new Scanner(System.in);
    String t = y.nextLine();






    try {

        File file = new File(FileName);

        // if file doesnt exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        // true = append file
        fw = new FileWriter(file.getAbsoluteFile(), true);
        bw = new BufferedWriter(fw);

        bw.write("Date, Food Time, Food Name, Calories, Carbohydrates, 
        Sugars, Fiber, Protein, Total Fat ");
        bw.write(t);
        bw.write(f);;
        System.out.println("Done");

    } catch (IOException e) {

        e.printStackTrace();

    } finally {

        try {

            if (bw != null)
                bw.close();

            if (fw != null)
                fw.close();

        } catch (IOException ex) {

            ex.printStackTrace();

        }
    }

}     }

1 个答案:

答案 0 :(得分:0)

您需要在值之间添加逗号,,以便将它们放在不同的单元格中。

尝试使用此方法检查t的结尾和f的开头是否没有","。如果两者都没有逗号,则在t:

的末尾添加一个逗号
    bw.write(t);
    //check if the end of t and the start of f do not have a ",". If neither has a comma then add one to the end of t
    if (t.endsWith(",") == false && f.startsWith(",") == false)
    {
        t = t + ",";
    }
    bw.write(f);

我建议写一个特殊的方法在两个变量上做这样的检查,这样你就可以从任何地方调用它,我也注意到你错过了一个","在这一行的最后Sugars, Fiber, Protein, Total Fat ");。应该有Fat, ");(注意逗号)。