Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试将数据写入.txt文件。我做错了什么?_Java_File - Fatal编程技术网

Java 正在尝试将数据写入.txt文件。我做错了什么?

Java 正在尝试将数据写入.txt文件。我做错了什么?,java,file,Java,File,我想将数据(函数运行所需的时间)写入一个.txt文件,这样我就可以将其放入Excel并制作电子表格(可以在Excel中制作日志和半日志图) 以下是我目前掌握的情况: timing.java public static void main(String args[]) { Stopwatch timeMe = new Stopwatch(); ... try { File logFile = new File("log.txt");

我想将数据(函数运行所需的时间)写入一个.txt文件,这样我就可以将其放入Excel并制作电子表格(可以在Excel中制作日志和半日志图)

以下是我目前掌握的情况: timing.java

  public static void main(String args[]) {

        Stopwatch timeMe = new Stopwatch();

    ...

    try
    {
        File logFile = new File("log.txt");
        FileWriter fw = new FileWriter(logFile2, true);
        FileWriter fw2 = new FileWriter(logFile, true);
        BufferedWriter bw = new BufferedWriter(fw);

        // if file doesnt exists, then create it
        if (!logFile.exists()) {
            logFile.createNewFile();
            System.out.println("doesn't exist");
        }
    ...

        for (int i = 1000; i <= 256000; i+=1000)
        {
            int[] randomArray = randomarr(i);
            fw.write(String.valueOf(i));
            fw.write(String.format("%n"));
            timeMe.start();
            pluto(randomArray);
            timeMe.stop();
            fw.write(timeMe.toString());
            fw.write(String.format("%n"));
        }
    }

    catch (IOException e)
    {
        e.printStackTrace();
    }
...
}
/**
 A class to measure time elapsed.
*/

public class Stopwatch
{
    private long startTime;
    private long stopTime;

    public static final double NANOS_PER_SEC = 1000000000.0;

    /**
     start the stop watch.
    */
    public void start()
    {   System.gc();
        startTime = System.nanoTime();
    }

    /**
     stop the stop watch.
    */
    public void stop()
    {   stopTime = System.nanoTime();   }

    /**
    elapsed time in secods.
    @return the time recorded on the stopwatch in seconds
    */
    public double time()
    {   return (stopTime - startTime) / NANOS_PER_SEC;  }

    public String toString()
    {   return "elapsed time: " + time() + " seconds."; }

    /**
    elapsed time in nanoseconds.
    @return the time recorded on the stopwatch in nanoseconds
    */
    public long timeInNanoseconds()
    {   return (stopTime - startTime);  }
}

问题是,当我在秒表中更改任何内容时,即删除“已用时间:”和“秒”。在.toString()方法中隔离数字时,不会向文件中打印任何内容。换句话说,.txt文件是空的。当我使用原始Stopwatch.java文件运行它时,所有内容都会打印到log.txt文件中,但我不需要此文本。

是否关闭该文件,和/或?否则,当程序终止时,数据可能会被缓冲,但不会被写入

它可能会一直工作,直到您删除周围的字符,这仅仅是因为您已经生成了足够的文本来自动触发文件写入


相关:

是否关闭该文件,和/或?否则,当程序终止时,数据可能会被缓冲,但不会被写入

它可能会一直工作,直到您删除周围的字符,这仅仅是因为您已经生成了足够的文本来自动触发文件写入


相关:

是否关闭该文件,和/或?否则,当程序终止时,数据可能会被缓冲,但不会被写入

它可能会一直工作,直到您删除周围的字符,这仅仅是因为您已经生成了足够的文本来自动触发文件写入


相关:

是否关闭该文件,和/或?否则,当程序终止时,数据可能会被缓冲,但不会被写入

它可能会一直工作,直到您删除周围的字符,这仅仅是因为您已经生成了足够的文本来自动触发文件写入

相关的:

在这里,您创建了一个名为
logFile
的文件

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

    System.out.println("doesn't exist");
}
这里你已经用另一个覆盖了它。如果您在Unix、Linux等平台上,
fw2
将继续写入上一个文件,但它已被删除,因此您将永远看不到数据。移除整个块

在这里,您创建了一个名为
logFile
的文件

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

    System.out.println("doesn't exist");
}
这里你已经用另一个覆盖了它。如果您在Unix、Linux等平台上,
fw2
将继续写入上一个文件,但它已被删除,因此您将永远看不到数据。移除整个块

在这里,您创建了一个名为
logFile
的文件

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

    System.out.println("doesn't exist");
}
这里你已经用另一个覆盖了它。如果您在Unix、Linux等平台上,
fw2
将继续写入上一个文件,但它已被删除,因此您将永远看不到数据。移除整个块

在这里,您创建了一个名为
logFile
的文件

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

    System.out.println("doesn't exist");
}

这里你已经用另一个覆盖了它。如果您在Unix、Linux等平台上,
fw2
将继续写入上一个文件,但它已被删除,因此您将永远看不到数据。移除整个块

必须关闭写入程序。阅读为什么有两个文件?你为什么不给第二个写信?为什么你把名字弄混了,所以
fw=logfile2
,反之亦然?编写器必须关闭。阅读为什么有两个文件?你为什么不给第二个写信?为什么你把名字弄混了,所以
fw=logfile2
,反之亦然?编写器必须关闭。阅读为什么有两个文件?你为什么不给第二个写信?为什么你把名字弄混了,所以
fw=logfile2
,反之亦然?编写器必须关闭。阅读为什么有两个文件?你为什么不给第二个写信?为什么你把名字弄混了,使之成为
fw=logfile2
,反之亦然?这绝对是个好建议,但我确实看到OP孤立了
fw2
logFile
)指向的文件,而不是
fw
(他写的)。无论哪种方式,我都不确定
toString()
方法中的孤立更改会如何影响这一点。这绝对是一个值得遵循的好建议,但我确实看到OP孤立了
fw2
logFile
)指向的文件,而不是
fw
(他写的)。无论哪种方式,我都不确定
toString()
方法中的孤立更改会如何影响这一点。这绝对是一个值得遵循的好建议,但我确实看到OP孤立了
fw2
logFile
)指向的文件,而不是
fw
(他写的)。无论哪种方式,我都不确定
toString()
方法中的孤立更改会如何影响这一点。这绝对是一个值得遵循的好建议,但我确实看到OP孤立了
fw2
logFile
)指向的文件,而不是
fw
(他写的)。无论哪种方式,我都不确定
toString()
方法中的孤立更改会如何影响这一点。