Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 在文本文件中输出变量_Java_Eclipse_Ubuntu 12.04 - Fatal编程技术网

Java 在文本文件中输出变量

Java 在文本文件中输出变量,java,eclipse,ubuntu-12.04,Java,Eclipse,Ubuntu 12.04,我有一些Java代码,如下所示: public synchronized void printLinkStatistics(Logger log) { log.info("\tInput Port = " + inputPort); Set <Long> ts = statData.keySet(); for(Long t: ts) { double utilization = statData.get(t); if (utiliz

我有一些Java代码,如下所示:

public synchronized void printLinkStatistics(Logger log)
{
    log.info("\tInput Port = " + inputPort);
    Set <Long> ts = statData.keySet();
    for(Long t: ts)
    {   double utilization = statData.get(t);
        if (utilization!=0.0) 
        {
            utilization *= 8.0;
            utilization /= 1e6;
            if (!Double.isNaN(utilization))
            {
            log.info("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");

           }
        }
    }
}
public synchronized void printLinkStatistics(记录器日志)
{
log.info(“\t输入端口=“+inputPort”);
Set ts=statData.keySet();
用于(长t:ts)
{double use=statData.get(t);
如果(利用率!=0.0)
{
利用率*=8.0;
利用率/=1e6;
如果(!Double.isNaN(利用率))
{
log.info(“\t\tTimestamp=“+t+”,Utilization=“+Utilization+”Mbps”);
}
}
}
}
这段代码将在控制台中写入利用率,但我还需要在一个文件中写入利用率+时间戳,以便将来绘制试点。 如何使用此变量创建文件? 我在Ubuntu 12.04中使用Eclipse

伊迪丝 我正在执行此操作,但文件为空:

public synchronized void printLinkStatistics(Logger log)
{ 
    try
    {
    PrintWriter pw = new PrintWriter(new File("output.txt"));
    log.info("\tInput Port = " + inputPort);
    Set <Long> ts = statData.keySet();
    for(Long t: ts)
    {   double utilization = statData.get(t);
        if (utilization!=0.0) 
        {
            utilization *= 8.0;
            utilization /= 1e6;
            if (!Double.isNaN(utilization))
            {
            log.info("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");
            pw.println("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");
            }
        }
    }
    }
    catch (FileNotFoundException e) {
        e.printStackTrace(); //handle exception as you want
                                        }
}
public synchronized void printLinkStatistics(记录器日志)
{ 
尝试
{
PrintWriter pw=新的PrintWriter(新文件(“output.txt”);
log.info(“\t输入端口=“+inputPort”);
Set ts=statData.keySet();
用于(长t:ts)
{double use=statData.get(t);
如果(利用率!=0.0)
{
利用率*=8.0;
利用率/=1e6;
如果(!Double.isNaN(利用率))
{
log.info(“\t\tTimestamp=“+t+”,Utilization=“+Utilization+”Mbps”);
pw.println(“\t\tTimestamp=“+t+”,Utilization=“+Utilization+”Mbps”);
}
}
}
}
catch(filenotfounde异常){
e、 printStackTrace();//根据需要处理异常
}
}
您可以使用并将输出重定向到文件。PrintWriter有许多有用的方法,使编写输出变得更容易(有关更多信息,请阅读java文档)。例如

更新后的代码如下所示

public synchronized void printLinkStatistics(Logger log, PrintWriter writer)
{
    log.info("\tInput Port = " + inputPort);
    Set <Long> ts = statData.keySet();
    for(Long t: ts)
    {   double utilization = statData.get(t);
        if (utilization!=0.0) 
        {
            utilization *= 8.0;
            utilization /= 1e6;
            if (!Double.isNaN(utilization))
            {
            log.info("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");
      writer.println("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");

           }
        }
    }
    writer.flush();
}

使用
FileWriter
,它是一个非常简单的实现。谷歌是你的朋友。@PatrickJAbareII好吧,你说得对:)嗨。thnx表示答案,但正如您所看到的,我需要在每个for循环迭代中添加到该文件中,我可以如何做?@arashams我用您需要在method@arashams您需要处理选中的异常,请参阅answer@arashams您缺少pw.flush(),请仔细查看我的答案(有一个换行器.flush())DothisPrintWriter pw=newPrintWriter(newFileWriter(“output.txt”,true));
public synchronized void printLinkStatistics(Logger log, PrintWriter writer)
{
    log.info("\tInput Port = " + inputPort);
    Set <Long> ts = statData.keySet();
    for(Long t: ts)
    {   double utilization = statData.get(t);
        if (utilization!=0.0) 
        {
            utilization *= 8.0;
            utilization /= 1e6;
            if (!Double.isNaN(utilization))
            {
            log.info("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");
      writer.println("\t\tTimestamp = " + t + ", Utilization = " + utilization + "Mbps");

           }
        }
    }
    writer.flush();
}
try {
    PrintWriter pw = new PrintWriter(new File("output.txt"));
    printLinkStatistics(logger, pw);
} catch (FileNotFoundException e) {
    e.printStackTrace(); //handle exception as you want
}