Java基础知识6

内部类与异常类:
  • 内部类:一个类中定义另一个类;包含内部类的类为外嵌类
1.内部类可使用外嵌类的成员变量和方法
2.内部类的类体中不可声明类变量和类方法,外嵌类可用内部类声明对象作为外嵌类的成员
3.内部类仅供它的外嵌类使用
4.内部类可以是static类,此时其他类中才可使用此static内部类来创建对象,但static内部类不能操作外嵌类中的实例成员变量,非内部类不可以是static类
5.内部类的字节码名字格式为“外嵌类名内部类名”

  • 匿名类:直接使用 new 类名(){ 匿名类的类体 }   或   new 接口名(){ 实现接口的匿名类的类体 }
  • 匿名类相当于子类或实现接口的类,一般用匿名类作为一个 子类对象 或 已经实现的接口 当参数传递给方法
  • 异常类:
try { 包含可能发生异常的语句 }
catch(ExceptionSubClass1 e) { ... }
catch(ExceptionSubClass2 e) { ... }
finally{ ... }


finally语句可省略,若存在finally则无论在try部分是否发生过异常都会执行finally子语句,除非在finally之前执行了程序退出代码(return语句后仍然会执行finally)

throw用来手动抛出异常
  • 断言:当发生某个错误时程序立即停止执行
两种语法格式:
assert boolean语句;
assert boolean语句:"提示消息";


输入、输出流:
  • 文件字节输入输出流(以字节byte为单位,以文件file为源)
输入流:FileInputStream继承自InputStream
输出流:FileOutputStream继承自OutputStream

  • 文件字符输入输出流(以字符char为单位,以文件file为源)
输入流:FileReader继承自Reader
输出流:FileWriter继承自Writer
  • 注:当把读入的数据转换为字符串时,要把实际读入的字节转化为字符串,read()的返回值为实际读入的字节数目,若未读入则返回-1,;使用完输入或输出流要用close()关闭流;对于Writer流,write方法将数据首先写入到缓冲区待到缓冲区溢出时自动写入目的地,关闭流时会立刻将缓冲区的内容写入目的地,也可调用flush()立刻将缓冲区的内容写入目的地。

  • 缓冲输入输出流(以字符输入流Reader或字符输出流Writer为源,有更强的读写能力,如:可以按行读取文件)
输入流:BufferedReader
输出流:BufferedWriter,特有方法newLine():向文件写入一个回车符

  • 随机流(既能读文件也能写文件)RandomAccessFile。构造时指定只读只写或可读写
  • 注:RandomAccessFile流的readLine()方法在读取含有非ASCII字符(如中文)的文件时会出现乱码,需将读取到的字符串重新编码到byte数组中再用当前机器默认编码将该数组转化为字符串,操作如下:String str = in.readLine();byte b[] = str.getBytes("iso-8859-1"); String content = new String(b);

  • 数组流
字节数组流:
字节数组输入流ByteArrayInputStream和字节数组输出流ByteArrayOutputStream
字符数组流:
字符数组输入流CharArrayReader和字符数组输出流CharArrayWriter

  • 数据流
数据输入流DataInputStream(Input Stream in)和数据输出流DataOutputStream(OutputStream out)

  • 对象输入输出流(以InputStream或OutputStream为源进行构造)
输入流:ObjectInputStream继承自InputStream,使用readObject()读取一个对象到程序中
输出流:ObjectOutputStream继承自OutputStream,使用writeObject(Object obj)将一个对象写入一个文件

  • 文件锁
FileLock和FileChannel,使用方法如下:

RandomAccessFile input = new RandomAccessFile("test.java","rw");

FileChannel channel = input.getChannel();

FileLock lock = channel.tryLock();//加锁

lock.release();//释放锁

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值