本周,我学习了书本上第5、六两章的内容,如下是我整理的主要知识。java
类的两个重要成员:成员变量和方法。除此以外还能够有一种成员:内部类!git
内部类:在一个类中定义另外一个类正则表达式
外嵌类:包含内部类的类数组
内部类和外嵌类的关系:外嵌类的成员变量在内部类仍然有效,内部类中的方法也能够调用外嵌类中的方法。app
内部类中的类体不能够声明类变量和类方法。外嵌类的类体能够用内部类声明对象dom
内部类仅供它的外嵌类使用编辑器
Java编辑器生成的内部类的字节码名字格式外嵌类名$内部类名
学习
内部类能够被修饰为static内部类,可是,static内部类不能操做外嵌类中的实例成员变量,非内部类不能够是static类设计
没有显示的定义一个类的子类,而又想用子类建立一个对象,能够直接使用一个类的子类的类体建立一个子类对象3d
不能用匿名类声明对象,可是却能够直接用匿名类建立一个对象。匿名类对象的引用能够传递给一个匹配的参数。
匿名类的特色:
没有显示的定义一个实现接口类,而又想实现该接口的类建立一个对象。
异常:程序运行时可能出现的一些错误
try { 包含可能发生异常的语句 } catch(ExceptionSubClass1 e){ ... } catch(ExceptionSubClass2 e){ ... }
一个方法在申明是可使用throws关键字声明要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操做,即用相应的异常类建立对象。
例assert booleanExpression
,assert booleanExpression:messageException
启用或关闭断言语句:java -ea mainClass
public String getName() | 获取文件的名字 |
---|---|
public boolean canRead() | 判断文件是否可读 |
public boolean canWrite() | 判断文件是否可被写入 |
public boolean exists() | 判断文件是否存在 |
public long length() | 获取文件的长度 |
public String getAbsolutePath() | 获取文件的绝对路径 |
public String getParent() | 获取文件的父目录 |
public boolean isFile() | 判断文件是不是一个普通文件 |
public boolean isDirectory() | 判断文件是不是一个目录 |
public boolean isHidden() | 判断文件是不是隐藏文件 |
public long lastModified() | 获取文件最后修改的时间 |
建立目录:public boolean mkdir()
列出目录中的文件:
public String[] list() | 用字符串形式返回目录中的所有文件 |
---|---|
public File[] listFiles() | 用File对象形式返回目录中的所有文件 |
public String[] list(FilenameFilter filter) | 用字符串返回由包含在目录中指定类型的全部文件 |
public File[] listFiles(FileFilter filter) | 用File对象形式返回由包含在目录中指定类型的全部文件 |
建立:例:File file =new file("C://myletter","letter.txt")
删除:file.delete()
使用Runtime类声明一个对象:Runtime ec
使用该类的getRuntime()静态方法建立这个对象:ec = Runtime.getRuntime
使用输入流一般包括4个基本步骤:
FileInputStream(String name); FileInputStream(File file); File f=new File("D:/2000/E.java"); FileInputStream input=new FileInputStream(f);
void write(int n) | 输出流调用该方法向目的地写数据 |
---|---|
void write(byte b[]) | 输出流调用该方法向目的地写入一个字节数组 |
void write(byte b[],int off,int len) | 给定字节数组中起始于偏移量off处取len个字节写到目的地 |
void close() | 关闭输出流 |
以char为单位,构造方法:
FileReader(String filename): FileReader(File filename);
FileWrite(String filename):FileWrite(File filename);
FileWrite(String filename,boolean append);
FileWrite(File filename,boolean append);
BufferedReader,BufferedWrite类缓冲输入、输出流能够加强读写文件的能力
BufferedReader,BufferedWrite类,两者的源和目的地必须是字符输入流和字符输出流
BufferedReader,BufferedWrite类的构造方法:
BufferedReader(Reader in): Reader in=new FileReader("a.txt"); BufferedReader inTwo=new BufferedReader(in); BufferedWrite (Wirte out); Write out=new FileWrite("b.txt"); BufferedWrite outTwo=new BufferedWrite(out); outTwo("你好a",0,3);
RandomAccessFile类建立的流叫作随机流,不是InputStream类和OutputStream类的子类
指向能够既能够做为流的源,也能够做为流的目的地
构造方法:RandomAccessFile(String name,String mode)
RandomAccessFile(File file,String mode)
字节数组输入流ByteArrayInputStream,字节数组输出流ByteArrayoutputStream
构造方法:
ByteArrayInputStream:
ByteArrayInputStream(byte[] buf); ByteArrayInputStream(byte[] buf,int offset,int length);
ByteArrayoutputStream:
ByteArrayoutputStream(); ByteArrayoutputStream(int size);
CharArrayReader,CharArrayWrite
DataInputStream和DataoutputStream类建立的对象称为数据输入流和数据输出流
构造方法:DataInputStream:DataInputStream(InputStream in)
DataOutputStream:DataOutputStream(OutputStream out)
ObjectInputStream、ObjectoutputStream分别是InputStream和outputStream类的子类,建立的对象称为对象输入流和对象输出流。
构造方法:ObjectInputStream:ObjectInputStream(InputStream in)
ObjectOutputStream:ObjectOutputStream(OutputStream out)
在使用对象流写入或读入对象时,要保证对象是序列化的。
对象的复制品,且复制品的实体的变化不会引发原对象实体发生变化,这样的复制品称为原对象的一个克隆对象,简称克隆。
对象输入流经过对象的序列化信息来获得当前对象的一个克隆
建立Scanner的对象,并指向要解析的文件:
File file=new File("hello.java"); Scanner sc=new Scanner(file);
那么sc将空格做为分割标记、调用next()方法依次返回file中的单词,若是file最后一个单词已被next()方法返回,sc调回hasNext()将返回false,不然返回true
File file = new File(“hello.java");
Scanner sc=new Scanner(file);
sc useDelimiter(正则表达式);
那么sc将正则表达式做为分隔标记
文件对话框是一个选择文件的界面。javax.swing包中的JFileChooser能够建立文件对话框
javax.swing包中的ProgressMonitorInputStream输入流类,能够看见文件的读取进度
问题1:
问题1解决方案:括号内数据间隔符号使用错误
问题2:
问题2解决方案:句末的分号使用了中文字符
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 37/37 | 1/1 | 10/10 | |
第二周 | 399/436 | 1/2 | 12/22 | |
第三周 | 764/1163 | 1/3 | 18/40 | |
第四周 | 687/1813 | 1/4 | 12/52 | |
第五周 | 1127/2916 | 1/5 | 10/62 |