Java文件与磁盘操作技术详解[Java编程]
本文“Java文件与磁盘操作技术详解[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1 若何得到某一个目录下的文件列表?
File MyDir = new File("C:/Windows/.");
String[] FileNames = MyDir.list();
2 若何实现一个翻开文件大概是存储文件对话框?
AWT: FileDialog类 + FilenameFilter类
Swing: JFileChooser类 + FileFilter类
此中,基于Swing的办理筹划功效愈加强盛,界面也越发美好.
3 操纵FileReader/FileOutputStream拷贝中文文件出错?
操纵以下代码片断拷贝中文文件不会出错:
int c;
while ((c = MyFileReader.read()) != -1)
MyFileWriter.write(c);
操纵以下代码片断拷贝中文文件会招致文件内容错误:
int c;
while ((c = MyFileReader.read()) != -1)
MyFileOutputStream.write(c);
造成这个问题的缘由是:FileReader.read()返回一个int,其取值范围是0 到65535,普通来说是两个字节的;FileWriter.write(int c)向文件写入一个int,普通来说也是两个字节的,假如某个字符的高位字节为空,那么其高位字节将被舍弃;FileOutputStream.write(int b)固然承受一个int作为参数,实际上只向文件写入一个字节,假如传送过来的参数是一个双字节的汉字,其高位字节将被舍弃,造成文件内容错误.
倡议:永久只利用InputStream/OutputStream举行IO操作.
操纵以下代码片断拷贝中文文件不会出错:
int c;
while ((c = MyFileInputStream.read()) != -1)
MyFileOutputStream.write(c);
4 若何显示和存储拉丁语言中的特别字符
利用统一码Unicode可以显示和存储拉丁语言中的特别字符.具体利用典范
以下:
MyJTextArea.append("\u00E1");
MyJTextArea.append("\u00E2");
MyJTextArea.append("\u00E3");
MyJTextArea.append("\u00E4");
MyJTextArea.append("\u00E5");
MyFileOutputStream.write(MyJTextArea.getText().getBytes("UTF-8"));
MyFileOutputStream.close();
一样,在读取文件的时刻也需求将读到的内容转换成统一码.
byte[] b = new byte[MyFile.length()];
FileInputStream in = new FileInputStream(MyFile);
in.read(b);
MyJTextArea.append(new String(b, "UTF-8"));
5 若何操纵文件举行数据存取
关于普通的科学计算利用程序,DataInputStream和DataOutputStream类普通是最好的挑选.这两个类供应了存取各种数据的办法.下面的典范演示了构造DataInputStream和DataOutputStream的办法:
MyDataInputStream = new DataInputStream(new FileInputStream(MyInputFile));
MyDataOutputStream = new DataOutputStream(new FileOutputStream(MyOutputFile));
操纵ObjectInputStream和ObjectOutputStream一样可以举行数据存取,需求注意的是这样做增添了硬盘的开销,因为举行对象序列化历程增添了一些额外的信息.在操纵ObjectInputStream和ObjectOutputStream举行通讯的时刻,固然数据发收历程得到了大大简化,但是对带宽的要求也大大的提高了.
以上是“Java文件与磁盘操作技术详解[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |