每次程序运行时如何输出新的文本文件?

时间:2017-10-12 03:25:17

标签: java

我想知道如何让程序在每次运行时输出一个新的文本文件。例如,首先运行machineslot(1).txt,第二次运行machineslot(2).txt,等等。或者,在输出文件时使输出文件包含在内。

File file = new File("MachineSlot.Txt"); 

    try(PrintWriter out = new PrintWriter(new FileWriter(file));) {

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

            if (winData[i][0] != 0.0) {

            out.printf("You won Machine %.0f. You won $%.2f. You have %.0f quarters which equals $%.2f %n", winData[i][0], winData[i][1], winData[i][2], winData[i][3]);

            }
        }

        for (int k = 0; k < plays.length; k++)
            out.println("You were able to play machine " + (k + 1) +" a total of "+ plays[k] + " times.");
    }//end of try.      

    catch(IOException error){
        System.out.println("Could not use the IO file");
    }//End catch

3 个答案:

答案 0 :(得分:2)

我的解决方案是使用文件名并为其添加时间戳。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_blood_g_activity"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Mature Diabetic Patient"
    android:layout_gravity="center"
    android:textSize="15dp"/>


<View
    android:layout_width="wrap_content"
    android:layout_height="30dp"/>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:orientation="horizontal">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter Your current Blood Sugar"/>
    <View
        android:layout_width="20dp"
        android:layout_height="60dp"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/cbs"
        android:inputType="number"
        android:hint="mg/dl"/>

</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:orientation="horizontal">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter Your Target Blood Sugar"/>
    <View
        android:layout_width="20dp"
        android:layout_height="60dp"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tbs"
        android:inputType="number"
        android:hint="mg/dl"/>

</LinearLayout>
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Humalog/Novalog"
        android:id="@+id/btnhnbs"
        android:layout_gravity="center"/>
  </LinearLayout>

通常说生成的任何两个文件都会有不同的文件生成时间戳。避免多次检查现有文件。

其他添加具有格式化日期。

File file = new File("MachineSlot_" + System.currentTimeMillis() + ".txt");

答案 1 :(得分:1)

您可以在PrintWriter代码

之前尝试此操作
File file;
int i = 0;
do{
    file = new File(String.format("MachineSlot(%d).Txt", i++));
}
while (file.exists());

答案 2 :(得分:0)

根据您的问题,使用您的文件名添加日期和时间的最佳方式

String date = new SimpleDateFormat("yyyMMddHHmmssSS").format(new Date());

此处将当前日期转换为特定格式,然后文件名将为

File file = new File("MachineSlot" + date + ".txt");

输出看起来像(文件名) -

MachineSlot20171012094424.txt