❶ java安装在哪个盘好
Java可以安装在任何一个磁盘分区上,哪个盘更好主要取决于个人习惯和电脑硬件配置。
1. 磁盘选择并无限制:Java的安装不局限于特定的磁盘或分区。任何硬盘或固态硬盘上的空闲空间都可以作为安装位置。你可以根据个人偏好和工作需要来选择安装的磁盘。
2. 考虑硬盘空间与性能:在选择安装盘时,应考虑该分区的可用空间大小及读写性能。一般来说,如果固态硬盘上有足够的空间,将其作为Java的安装位置可能更为理想,因为它的读写速度通常更快。然而,这并不是强制性的要求,因为Java也可以在其他类型的硬盘上正常运行。
3. 系统默认路径选择问题:在多数情况下,Java默认安装在系统盘。如果你没有特别指定安装路径,系统会自动将其安装在默认路径下。然而,出于系统管理和维护的考虑,有时也可以选择安装在其他分区上。特别是在系统盘空间有限的情况下,将Java安装在其他分区可以避免不必要的空间占用和系统性能问题。
总之,Java安装在哪个盘主要取决于个人习惯和系统配置。关键是确保所选安装位置有足够的空间并且具有良好的读写性能。同时,为了避免可能的系统问题,最好不要频繁移动Java的安装位置或者更改系统的环境变量设置。
❷ Java做zip压缩时,磁盘读写次数高且速度慢,能不能加个缓冲区解决
试一下 我的 方法 这个 包你满意。。
public static void zip(File[] files, String outputFile) throws IOException
{
//如果files长度为0,zout.close()方法会抛异常: ZIP file must have at least one entry
if(files.length == 0)
{
LogUtils.warn("Log file list is empty");
return;
}
FileOutputStream out = null;
BufferedOutputStream buffOut = null;
ZipOutputStream zout = null;
try
{
out = new FileOutputStream(outputFile);
buffOut = new BufferedOutputStream(out);
zout = new ZipOutputStream(buffOut);
for (int i = 0; i < files.length; i++)
{
InputStream in = null;
BufferedInputStream buffIn = null;
try
{
in = new FileInputStream(files[i]);
buffIn = new BufferedInputStream(in, BUFF_SIZE);
ZipEntry zipEntry = new ZipEntry(files[i].getName());
zout.putNextEntry(zipEntry);
int len = 0;
byte data[] = new byte[BUFF_SIZE];
while ((len = buffIn.read(data)) != -1)
{
zout.write(data, 0, len);
}
}
finally
{
try
{
zout.closeEntry();
}
catch (IOException e)
{
LogUtils.exception(e, "Close zip file entry failed");
}
closeStream(buffIn);
closeStream(in);
}
}
}
finally
{
closeStream(zout);
closeStream(buffOut);
closeStream(out);
}
}
❸ 编一个java程序,用i/o的方式把一个磁盘的文件复制到另一个磁盘
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
publicclassFileTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
StringstrFileSrc="D://demo";
StringstrFileDes="D://demotest";
FilefileSrc=newFile(strFileSrc);
FilefileDes=newFile(strFileDes);
FileTestobj=newFileTest();
System.out.println("开始");
obj.Folder(fileSrc,fileDes);
System.out.println("结束");
}
privatevoidFolder(Filesrc,Filedest){
if(src.isDirectory()){
if(!dest.exists()){
dest.mkdir();
}
Stringfiles[]=src.list();
for(Stringfile:files){
FilesrcFile=newFile(src,file);
FiledestFile=newFile(dest,file);
//递归复制
Folder(srcFile,destFile);
}
}else{
try{
InputStreamin=newFileInputStream(src);
OutputStreamout=newFileOutputStream(dest);
byte[]buffer=newbyte[1024];
intlength;
while((length=in.read(buffer))>0){
out.write(buffer,0,length);
}
in.close();
out.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione2){
e2.printStackTrace();
}
}
}
}
❹ 调用java 中的MappedByteBuffer的put方法,是直接写入磁盘么
有一个很简单的方法! 上优盘, debug停住之后, 立刻拔掉优盘! 然后连上优盘, 可以看到没有写入!
正好结合这个问题记一下我对文件缓存的理解. 有误请帮我指出.
我们一般说文件缓存, 其实是有两个缓存;
一个是 application层面的, 使用fflush(c), Writer.flush(java) 来 清空缓存到 OS层面;
一个是 OS 层面的, 使用fsync/msync(c), FileChannel.force/FileDescriptor.sync(java) 来清空缓存到 文件系统.
❺ transient在java中的作用
你好,这个关键字的意思主要是用于在序列化中会不序列化(也就是所谓的忽视)你用这个关键字修饰的属性。这个应用在以前直接用关键字声明变量的情况,可以运用在返回json数据的情况,返回需要的指定的json数据。希望能帮到你。