首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输出文本文件中的变量

输出文本文件中的变量
EN

Stack Overflow用户
提问于 2014-09-25 15:19:04
回答 1查看 92关注 0票数 0

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

代码语言:javascript
复制
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");

           }
        }
    }
}

这段代码将在控制台中编写利用率,但我还需要在文件中写入利用率+时间戳,以便在将来绘制试点。如何使用这个变量创建文件?我在Ubuntu12.04中使用Eclipse

EDITH,我正在这样做,但是文件是空的:

代码语言:javascript
复制
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
                                        }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 15:23:07

您可以使用PrintWriter并将输出重定向到文件。PrintWriter有许多有用的方法,使编写输出更容易(阅读java文档获取更多信息)。例如。

代码语言:javascript
复制
PrintWriter pw = new PrintWriter(new File("output.txt"));
pw.println("hello");
pw.flush();

更新后的代码如下所示

代码语言:javascript
复制
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();
}

为了调用您的方法,您需要像这样将代码包装在试/抓块中

代码语言:javascript
复制
try {
    PrintWriter pw = new PrintWriter(new File("output.txt"));
    printLinkStatistics(logger, pw);
} catch (FileNotFoundException e) {
    e.printStackTrace(); //handle exception as you want
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26042189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档