小编use*_*771的帖子

在Java中逐行读取和写入大文件的最快方法

我一直在寻找最快的方法来读取和写入具有有限内存(约64MB)的java中的大文件(0.5 - 1 GB).文件中的每一行代表一条记录,所以我需要逐行获取它们.该文件是普通文本文件.

我尝试过BufferedReader和BufferedWriter但它似乎不是最好的选择.读取和写入大小为0.5 GB的文件大约需要35秒,只读取没有处理的写入.我认为这里的瓶颈是写作,因为单独阅读大约需要10秒钟.

我试图读取字节数组,但是在每个读取的数组中搜索行需要更多时间.

有什么建议吗?谢谢

java performance file-io bufferedreader

19
推荐指数
2
解决办法
6万
查看次数

在Java中散列密钥

在java中,当我使用String作为Hashmap的键时,我得到的结果与我在HashMap中使用字符串hashcode作为键时的结果略有不同.

任何见解?

java hashtable hashmap string-hashing

5
推荐指数
1
解决办法
1万
查看次数

JBPM、KIE Server、KIE Workbench 和 JBoss EAP 之间的关系

我想知道jbpm、kie server 和kie workbench 有什么区别。我现在正在研究 jbpm 教程,所以我下载了完整的安装程序。但是,我读到: 1. jbpm 可以作为不同的 jars 分发。2. kie 服务器是作为战争分发的。

那么它们之间是什么关系呢?他们整合在一起了吗?它们是一样的吗?

这一切是如何与 Jboss EAP 集成/相关的?

jbpm jboss-eap-6 kie kie-workbench kie-server

4
推荐指数
1
解决办法
6912
查看次数

使用Boost unordered_map

我希望boost::unordered_map在没有下载整个Boost包的情况下包含在我的项目中.我怎样才能做到这一点?

c++ boost unordered-map

3
推荐指数
1
解决办法
622
查看次数

Java中的哈希表内存使用情况

我使用java从文件中读取数据,将数据复制到较小的数组并将这些数组放在Hashtables中.我注意到Hashmap比原始文件消耗更多内存(大约两倍)!知道为什么吗?

这是我的代码:

public static void main(final String[] args) throws IOException {
    final PrintWriter writer = new PrintWriter(new FileWriter("test.txt",
            true));
    for(int i = 0; i < 1000000; i++)
        writer.println("This is just a dummy text!");
    writer.close();

    final BufferedReader reader = new BufferedReader(new FileReader(
            "test.txt"));
    final HashMap<Integer, String> testMap = new HashMap<Integer, String>();
    String line = reader.readLine();
    int k = 0;
    while(line != null) {
        testMap.put(k, line);
        k++;
        line = reader.readLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

java memory-leaks hashtable

2
推荐指数
2
解决办法
2684
查看次数

C++中的文件通道

在java中,有FileChannel,我可以从文件通道读取.我也可以在我想要开始阅读的频道中设置位置.

C++/C中的任何类似函数?

c c++ io filechannel

2
推荐指数
1
解决办法
361
查看次数

Java中的内存分配增加了一倍

我想知道如何确定java分配的内存.我有一个内存要求有限的程序.当我分配一个具有一定大小的数组时,我注意到JVM分配内存的倍数是这个大小的两倍:

例如:在我分配数组之前:

runtime.totalMemory() 15 MB
runtime.freeMemory(): 14 MB
Run Code Online (Sandbox Code Playgroud)

在这一行之后:char [] xxx = new char [4*1024*1024];

runtime.totalMemory() 15 MB
runtime.freeMemory(): 6 MB
Run Code Online (Sandbox Code Playgroud)

因此,可用内存量从14 MB下降到6 MB.即使我的阵列只有4 MB.我尝试过不同的数组,它总是一样的.为什么java分配数组大小的两倍?

谢谢

java memory-management

1
推荐指数
1
解决办法
157
查看次数