Java IO流 学习笔记

  • 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值