用java分配一个确定大小的存储空间的疑惑 在C/C++中可以分配一个指定大小的文件,而在java中有没有一个对应的方法来实现这一功能呢?主要是想要在磁盘上占有一块确定大小的空间不被其他人所使用,直接写入一个固定大小的文件占位,具体写入的内容就无所谓了。用c可以这么做,可是java的FILE类好像没有相应的方法……不知哪位有这方面的经验 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JAVA好像没有这类分配内存空间的函数把....都已经包装了所有指针了 也就不需要自己去管理内存空间了..楼主的意思不是很明白,,建个文件 然后先写入一定数量的任意字符,比如"0"来占位可以哇? LZ可以用RandomAccessFile来实现啊. RandomAccessFile r = new RandomAccessFile(file,"rw"); r.setLength(size); r.close();这样就行了.我给LZ写了个类:import java.io.FileNotFoundException;import java.io.IOException;public class Test { public void createfile() { try { long lo = System.currentTimeMillis(); java.io.RandomAccessFile raf = new java.io.RandomAccessFile( "d:/abc.txt", "rw"); raf.setLength(1024 * 1024 * 1024); raf.close(); System.out.print(System.currentTimeMillis() - lo); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { Test test = new Test(); test.createfile(); }}在D盘创建了一个1G的文件.您稍等一下,由于文件比较大,花了您时间是20953,也就是20多秒 在java中好像不能自己手动去操作内存,所有的指针都是被封装好了的, 一直不明白为何,既然在java中能创建文件,文件不是也存放在 磁盘上的吗?能不能写个划分磁盘的类呢?好想java中只要File类,还要学习啊。 没做过手动分配内存的....还有2楼的不是分配内存...你只是拿RandomAccessFile来设置此文件的大小~不是内存分配... 这里有获得当前Java程序的内存占用、分配情况的代码,你可以输出这些内容去看看Runtime r = Runtime.getRuntime();r.freeMemory()//当前虚拟机所余内存,返回值为longr.totalMemory()//虚拟机所分配的内存,返回值为long [netbeans]7.1版找不到"桌面应用程序" 做Java开发游戏服务器前途怎样 如何为 SWT 的 Button 添加 弹出式菜单? 关于这个hashmap的问题 ServerSocket编程问题,100分相送!! 做界面的一些问题? 请教我这个为什么有Runtime Error: SIGHUP 下载jbuilder 为什么我这样定义变量是错误的? ###########################简单的问题,救我! 关于TextArea的小问题 怎么实现棋盘打谱系统的暂停和继续
RandomAccessFile r = new RandomAccessFile(file,"rw");
r.setLength(size);
r.close();这样就行了.
我给LZ写了个类:
import java.io.FileNotFoundException;
import java.io.IOException;public class Test {
public void createfile() {
try {
long lo = System.currentTimeMillis();
java.io.RandomAccessFile raf = new java.io.RandomAccessFile(
"d:/abc.txt", "rw");
raf.setLength(1024 * 1024 * 1024);
raf.close();
System.out.print(System.currentTimeMillis() - lo);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
} public static void main(String[] args) {
Test test = new Test();
test.createfile();
}
}
在D盘创建了一个1G的文件.您稍等一下,由于文件比较大,花了您时间是20953,也就是20多秒
还有2楼的不是分配内存...你只是拿RandomAccessFile来设置此文件的大小~不是内存分配...
Runtime r = Runtime.getRuntime();
r.freeMemory()//当前虚拟机所余内存,返回值为long
r.totalMemory()//虚拟机所分配的内存,返回值为long