File
类可以通过public String[] list()
和public File[] list()
方法以数组形式返回该目录下的所有文件;当然如果需要以特定的条件筛选这些文件,可以用public String[] list(FilenameFilter obj)
和public File[] list(FilenameFilter obj)
这两个方法,其中FilenameFilter
为接口接口中只有一个方法:public boolean accept(File dir, String name
重写这个方法时,只需要在实现这个接口的类中设置筛选条件即可,下面举个例子: 筛选指定后缀名的文件。
public class FileAccept implements FilenameFilter {
String extendName;
void setName(String s){
extendName = s;
}
public boolean accept(File dir,String name){
return name.endsWith(extendName);
}
}
- 使用
RandomAccessFile
随机流读写中文时会出现编码错误的情况,经过实验可以用以下方法:
1.用随机流写文件含中文时
RandomAccessFile random = new RandomAccessFile("Text.txt","rw");
String s ="中文";
byte[] b = s.getBytes("utf-8");
for(int i = 0; i < b.length; i++){
random.writeByte(b[i]);
}
2.用随机流读文件含中文时
RandomAccessFile random = new RandomAccessFile("Text.txt","rw");
String str = random.readLine();
byte b[] = str.getBytes("iso-8859-1");
String result = new String(b);
我们可以发现,不管是读还是写,只需要将中文字符重新编码为字节数组即可。
- 在使用
ObjectOutput/InputStream
对象流读写对象时必须将该对象的类实现Serializable
接口,但该接口不需要重写方法(方法被隐藏),通过实现该接口才能使对象序列化。 - 当我们需要选择电脑中的文件或者保存某文件到电脑中时,我们可以通过
JFieChooser
类来打开文件对话框,具体操作如下:
1.用JFieChooser
类创建一个对象:
JFileChooser fileDialog = new JFileChooser();//此时对话框时默认不可见的
FileNameExtensionFilter filter = new FileNameExtensionFilter("java文件","java");//筛选规定后缀名的文件显示
fileDialog.setFileFilter(filter);
2.确定用户按下的按钮状态,有两个函数可以使对话框显示,分别是int showSaveDialog(Component c)
和int showOpenDialog(Component c)
,返回的int值为常量,用来确定用户点击按钮的状态,比如点击“确定”或者“取消”。
int state = fileDialog.showSaveDialog(this); //创建对话框点击确定或取消等按钮的状态,以确定接下来的操作
if(state == JFileChooser.APPROVE_OPTION){//点击确定执行的操作(保存或打开文件)}//类似的还有JFileChooser.CANCEL_OPTION