在缓存中创建文件

时间:2012-01-30 09:14:29

标签: java caching

我的要求是这样的,我没有物理上位于我的驱动器上的目标文件来写入输出流。那么,是否可以在缓存中创建一个文件?使用Java。

4 个答案:

答案 0 :(得分:0)

我怀疑你想要的是ByteArrayOutputStream,它允许你写入内存中的流而不是写入磁盘。

如果你指的是CPU或磁盘缓存,你能说出原因,以及你想要实现的目标吗?

答案 1 :(得分:0)

缓存不是程序可访问的,它使用替换策略来存储处理器本地的数据,以减少从内存中相对昂贵的提取次数。

我怀疑你真的想要写入内存,在linux环境下你可以使用共享内存/dev/shm来做这件事,它是已经映射到文件系统的系统内存的一部分。有关如何将其与java.nio.channels.FileChannel结合使用的示例,请查看this code

答案 2 :(得分:0)

如果您正在考虑内存映射文件,请尝试使用

//: c12:LargeMappedFiles.java
// Creating a very large file using mapping.
import java.io.*;
import java.nio.*;
import java.nio.channels.*;

public class LargeMappedFiles {
  static int length = 0x8FFFFFF; // 128 Mb
  public static void main(String[] args) throws Exception {
    MappedByteBuffer out = 
      new RandomAccessFile("test.dat", "rw").getChannel()
      .map(FileChannel.MapMode.READ_WRITE, 0, length);
    for(int i = 0; i < length; i++)
      out.put((byte)'x');
    System.out.println("Finished writing");
    for(int i = length/2; i < length/2 + 6; i++)
      System.out.print((char)out.get(i));
  }
} ///:~

样本来自here

答案 3 :(得分:0)

你指的是创建临时文件吗?尝试

File.createTempFile();