1 如何获得某一个目录下的文件列表?
1 File MyDir = new File("C:/Windows/."
);
2
3 String[] FileNames = MyDir.list();
2 如何实现一个打开文件或者是存储文件对话框?
1 AWT: FileDialog类 +
FilenameFilter类
2
3 Swing: JFileChooser类 + FileFilter类
其中,基于Swing的解决方案功能更加强大,界面也更加美观。
3 利用FileReader/FileOutputStream拷贝中文文件出错?
利用如下代码片断拷贝中文文件不会出错:
1 int
c;
2
3 while ((c = MyFileReader.read()) != -1
)
4
5 MyFileWriter.write(c);
利用如下代码片断拷贝中文文件会导致文件内容错误:
1 int
c;
2
3 while ((c = MyFileReader.read()) != -1
)
4
5 MyFileOutputStream.write(c);
造成这个问题的原因是:FileReader.read()返回一个int,其取值范围是
0 到65535,通常来说是两个字节的;FileWriter.write(int c)向文件写
入一个int,通常来说也是两个字节的,如果某个字符的高位字节为空,那
么其高位字节将被舍弃;FileOutputStream.write(int b)虽然接受一个
int作为参数,实际上只向文件写入一个字节,如果传递过来的参数是一个
双字节的汉字,其高位字节将被舍弃,造成文件内容错误。
建议:永远只使用InputStream/OutputStream进行IO操作。
利用如下代码片断拷贝中文文件不会出错:
1 int
c;
2
3 while ((c = MyFileInputStream.read()) != -1
)
4
5 MyFileOutputStream.write(c);
4 如何显示和存储拉丁语言中的特殊字符
使用统一码Unicode可以显示和存储拉丁语言中的特殊字符。具体应用范例
如下:
1 MyJTextArea.append("\u00E1"
);
2
3 MyJTextArea.append("\u00E2"
);
4
5 MyJTextArea.append("\u00E3"
);
6
7 MyJTextArea.append("\u00E4"
);
8
9 MyJTextArea.append("\u00E5"
);
10
11
12
13 MyFileOutputStream.write(MyJTextArea.getText().getBytes("UTF-8"
));
14
15 MyFileOutputStream.close();
同样,在读取文件的时候也需要将读到的内容转换成统一码。
1 byte[] b = new byte
[MyFile.length()];
2
3 FileInputStream in = new
FileInputStream(MyFile);
4
5
in.read(b);
6
7 MyJTextArea.append(new String(b, "UTF-8"));
5 如何利用文件进行数据存取
对于一般的科学计算应用程序,DataInputStream和DataOutputStream类通
常是最好的选择。这两个类提供了存取各种数据的方法。下面的范例演示了
构造DataInputStream和DataOutputStream的方法:
1 MyDataInputStream = new
DataInputStream(
2
3 new
FileInputStream(MyInputFile));
4
5 MyDataOutputStream = new
DataOutputStream(
6
7 new FileOutputStream(MyOutputFile));
利用ObjectInputStream和ObjectOutputStream同样可以进行数据存取,需
要注意的是这样做增加了硬盘的开销,因为进行对象序列化过程添加了一
些额外的信息。在利用ObjectInputStream和ObjectOutputStream进行通讯
的时候,虽然数据发收过程得到了大大简化,但是对带宽的要求也大大的
提高了。
6 文件操作的基本原则是什么?
a. 避免多次访问磁盘,例如一次读出n个字节就比每次读出1个字节的访问
效率要高很多。
b. 避免多次访问操作系统。
c. 避免多次调用文件存取方法。
d. 避免将字节和字符混淆处理,在Java语言中字节与字符的概念是不一样
的,在涉及到双字节字符的问题上更是容易出错。
7 如何获得可用的硬盘空间?
目前尚未发现有任何干净利落的纯Java方法能够解决这个问题。通常的解
决方案是直接访问操作系统获得这些信息。有一个被称为JConfig的类库提
供了一些方法可以获得磁盘和文件信息,但是可以肯定这个类库使用了JNI
方法。
下载地址:http://www.tolstoy.com/samizdat/jconfig.html
如果你使用的是晕倒死系列操作系统,那么下面的方法也许能够获得正确
的结果。我之所以说也许,是因为我在多个晕倒死平台上作过实际测试,
在英文版的晕倒死上基本上都能够得到正确的结果,在中文版的晕倒死上
基本上都不能够获得正确的结果。
1 String osname = System.getProperty("os.name"
);
2
3 String command = ""
;
4
5 if (osname.indexOf("NT") > -1
)
6
7 command = "c:\\winnt\\System32\\cmd.exe"
;
8
9 else if (osname.indexOf("Windows") > -1
)
10
11 command = "c:\\windows\\command.com"
;
12
13
14
15 Process p =
Runtime.getRuntime().exec(
16
17 command + " /c dir > c:\\dir.txt"
);
18
19
p.waitFor();
20
然后你需要做的是对得到的dir.txt文件进行分析。
如果你使用的是UNIX/Linux操作系统,你可以使用类似的方法来获得相关
信息。建议使用的命令是df -k > dir.txt。
8 我能够用Java来格式化我的硬盘或者是软盘么?
关于这个问题,想来在不久的将来仍然是不会有纯Java的解决方案了。如
果你一定要在你的Java应用程序里面格式化你的C盘的话,下面的这个方法
也许会有所帮助。当然,在你使用这个方法之前,请仔细备份好女朋友给你
的情书或者是记下和下一个网友约会的日期。
建立一个称为FormatDrive.bat的文件,该文件必须放在当前目录或者是系
统路径下,文件的内容如下:
rundll32.exe shell32.dll, SHFormatDrive
格式化硬盘的方法可以这样写:
1 public void
FormatDrive()
2
3
{
4
5 try
6
7
{
8
9 Process p = Runtime.getRuntime().exec("FormatDrive.bat"
);
10
11
p.waitfor();
12
13 } catch
(Exception e)
14
15
{
16
17
System.out.println(e);
18
19
}
20
21
}
22
9 怎么知道我究竟有几个可用的存储设备?
在UNIX/Linux下你通常没有必要关心这个问题,只要记住那个斜杠就可以了。
在晕倒死下硬盘可以有多个逻辑分区,可应用下面的方法找出来:
1 public void
ListDisks()
2
3
{
4
5 File[] roots =
File.listRoots();
6
7 for (int i=0
; i
8
{
9
10
System.out.println(roots[i]);
11
12
}
13
14
}
15
本FAQ参考并引用或者是改写了www.esus.com网站提供的部分内容,特此说
明。该网站是一个优秀的Java程序设计网站,值得各位朋友经常前去访问。
摘自:
http://www.cn-java.com/target/news.php?news_id=992
分享到:
相关推荐
java写文件到磁盘java写文件到磁盘java写文件到磁盘java写文件到磁盘
在计算机操作系统中,磁盘调度算法是用于管理硬盘读写操作的一种重要技术,它优化了数据访问效率,降低了磁头移动的时间,从而提高了系统性能。本文将深入探讨三种常见的磁盘调度算法,并以Java编程语言为例,阐述...
对原资源 模拟文件系统(Java版)>>进行了修复,修复了磁盘分块的bug,添加了写回硬盘的功能。这是一个用Java实现的一个虚拟文件系统,支持多用户使用,模拟了数据分块,实现了一些基本的文件目录操作,如创建目录,...
在Java编程中,获取磁盘使用率是一项常见的系统监控任务,尤其对于服务器管理与性能分析至关重要。磁盘使用率能够反映出系统中磁盘空间的占用情况,有助于及时发现并处理可能的存储问题。本篇文章将详细讲解如何使用...
操作系统是计算机系统的核心组成部分,它负责管理和控制硬件资源,尤其是文件和磁盘的管理。在C#编程语言中,我们可以利用.NET Framework提供的类库来实现对操作系统文件和磁盘的操作。下面将详细介绍操作系统文件和...
用java写的操作系统的磁盘管理程序,有详细的源代码和代码注释,如有错漏,欢迎指正…………
在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...
Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message Block)客户端,使得Java程序能够方便地操作Windows网络共享文件。在本文中,我们将深入探讨如何使用jcifs库中的...
- **注意事项**:在打开文件时需要验证文件属性与操作类型的匹配性。 2. **关闭文件(Close)**: - **定义**:完成文件操作后,通过“关闭文件”操作释放资源。 - **作用**:确保文件更改被正确保存到磁盘,并...
模拟实现采用二级目录结构的磁盘文件系统中的文件操作。 文件系统是操作系统中管理和存取信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。 在用户程序中可使用文件系统提供的...
在实际开发中,Java的多线程特性可以帮助我们实现并发的磁盘调度模拟,让I/O操作与用户交互并行进行,提高程序响应性。同时,通过调试工具,如JProfiler,可以对模拟过程进行性能分析,以优化算法。 总之,磁盘调度...
Java SE程序 字节文件保存到磁盘DateInputStream类Java SE程序 字节文件保存到磁盘DateInputStream类Java SE程序 字节文件保存到磁盘DateInputStream类Java SE程序 字节文件保存到磁盘DateInputStream类Java SE程序 ...
在Java中实现这些算法,需要理解数据结构如队列和栈,以及对磁盘I/O操作的基本模拟。例如,可以创建一个请求队列,然后根据不同的调度策略调整队列的顺序,最后模拟磁盘臂的移动来执行请求。 在"MYOSDesign"文件中...
处理器调度算法: 先来先服务, 时间片轮转, 短作业优先, 最高响应比优先 存储管理: FIFO, LRU 磁盘移臂调度: SSTF, SCAN 文件管理: 运用空闲盘块表的方式组织磁盘空间, 模拟文件的 create() 和 delete() 操作
java 查询本地磁盘信息
磁盘文件模拟系统 介绍 华南农业大学SCAU操作系统OS课程设计,JAVAFX开发,可以实现...界面交互使用的是JAVA中的绑定与监听,能够根据数据变化时刻更新。数据以对象保存在文件中 JAVAFX依赖的包放在了lib文件夹中。
java获取磁盘名称、磁盘大小、磁盘剩余空间
3. 磁盘操作:磁盘操作是指对硬盘、U盘等存储设备上的文件和目录进行的操作,包括但不限于读取文件内容、写入文件、创建新文件或目录、删除文件或目录、重命名文件或目录、移动文件或目录等。 4. 文件操作函数: -...
操作系统课程设计报告的主题是建立基于磁盘存储设备的FAT(File Allocation Table)文件系统,这一任务对于物联网专业的学生来说,旨在深入理解和实践文件系统的核心概念。文件系统是操作系统的重要组成部分,它负责...