java - BufferedWriter 类型中的方法 write(int) 不适用于参数 (Long)

标签 java long-integer bufferedwriter

当我尝试这个时出现上述错误

for (int i = 0 ; i < uaCount.get(args[1]).occurrences ; i++)
    {
        out.write(uaCount.get(args[1]).singleValues.get(i));
    }

Occurrences 和 singleValues 在这里定义:

public static class NumberHolder
{
    public int occurrences = 0;
    public int sumtime_in_milliseconds = 0; 
    public ArrayList<Long> singleValues = new ArrayList<Long>();
}

有什么办法可以解决这个问题吗?

最佳答案

鉴于问题的标题,我猜测是您只想使用String.valueOf 创建一个字符串:

for (int i = 0 ; i < uaCount.get(args[1]).occurrences ; i++)
{
    out.write(String.valueOf(uaCount.get(args[1]).singleValues.get(i)));
}

请注意,尽管如此,值之间不会有分隔符。我还建议为了可读性,你会写这样的东西:

NumberHolder holder = uaCount.get(args[1]);
for (int i = 0; i < holder.occurrences; i++)
{
    long value = holder.singleValues.get(i);
    out.write(String.valueOf(value));
    // Maybe out.write(" ") or something similar, as a separator?
}

此外,我强烈建议不要像您当前那样使用公共(public)字段。尝试更仔细地封装您的类型。如果 occurrences 实际上是列表的大小,您可以只使用增强的 for 循环来简化事情。例如:

for (long value : uaCount.get(args[1]).getSingleValues()) {
    out.write(String.valueOf(value));
}

关于java - BufferedWriter 类型中的方法 write(int) 不适用于参数 (Long),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934994/

相关文章:

java - Arquillian 运行模式

java - java中如何声明数组为long类型?

Java附加到文本文件在另一个系统上的工作方式不同?

java - Java中的 "ReentrantLock"是什么意思?

java - 我们如何使用 FirefoxProfile 保留浏览器的旧 session ?

java - 比较 PHP 时间戳(int)和 java 时间戳(长)

python - 在 Python 中除以长整型会返回错误的答案

java - 为什么 System.out.println 的输出与 bufferedwriter 不同?

java - 如何使用 buffered reader 和 bufferedwriter 在 java 中读取和写入文件

java - 试图从日历中获取日期...应用程序崩溃