FileReader(),和FileWriter()是字节流的读取,FileReader流顺序的读取文件,只要不关闭流,read()将读到源的末尾或关闭
4.带缓存的输入输出流(缓存是I/O的一种性能优化,可使用skp(),mark(),reset()等方法)
BufferedInputStream(InputStream in,int size)size可省略,省略时是一个32字节的缓存流,BufferedOutputStream()的用法类似,只是有一个flush()方法可以将缓存中的数据强制输出完,类似刷新
ButteredReader和ButteredWriter还可以行为单位输入输出,ButteredReader提供的方法read(),readLine(),ButteredWriter()提供方法为,write(String s,int off,int len),flush(),newLine(),返回void型
5.数据输入与输出流(不再关心数值应当是什么字节)
DateInputStream(InputStream in)方法readUTF()
DateOutputStream(OutputStream Out),writeBytes(String s),writeChars(String s),writeUTF(String s)
6.ZIP压缩输入输出(需要找到目录进入点)
zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的数据项存储压缩数据。
压缩ZipOutputStream(OutputStream out);常用方法putNextEntry(ZipEntry e),write(byte[] b,int off,int len),finish(),setComment(String comment),
解压ZipInputStream(InputStream in)常用方法read(byte[] b,int off.int len),avivable(),closeEntry(),skip(long n),getNextEntry(),createZipEntry(String name)
java学习——第十一章(反射)
1.java的反射机制,可以使程序员更深入的控制程序的运行,如在程序运行时对用户输入的信息进行验证等
java的反射机制还可以在程序中访问已经装载的对象的描述,实现访问检测和修改对象本身信息的功能,在java.lang.reflect包中
2.getPackage()/报路径,getName()/类名称,getSuperclass()/继承类,getInterfaces()/实现接口,getClasses()/getDeclaredClasses()/内部类,getDeclaringClass()/内部类声明
3.访问构造方法,getConstructors(Class< >...parameterTypes),getDeclaredConstructors(Class< >...parameterTypes),两者的参数都可省略且s去掉,将返回Constructor类型的数组或对象,但前者只能是对权限为public的构造方法,访问指定的构造方法 A.getDeclaredConstructor(参数)
Constructor常用的方法,isVarArgs(),getParameterTypes(),getExceptionTypes(),newInstance(参数),setAcessible(boolean flag),getModifiers()其中可以通过解析getModifiers()方法得到的修饰符信息,以下是一系列用来解析的静态方法,isPublic/Protected...Final()
5.访问方法,getMethods(String name,Class< >...parameterTypes),getDeclaredMethods(String name,Class< >...parameterTypes)两者的参数都可省略且s去掉,将返回Method类型的数组或对象,但前者只能是对权限为public的构造方法,访问指定的成员变量A.getDeclaredMethods(方法名,参数),气体够的方法如下
getName(),getParameterTypes(),getReturnType(),getExceptionTypes(),invoke(),isVarArgs(),getModifiers()
6.Annotation功能可用于类,成员变量,方法,参数等声明中,不影响程序,只会对编译器警告等辅助工具影响
定义 public @interface MemberAnnotion{String value()/default"默认构造方法";Class type();/可用的成员类型primitive,enumerated,annotion等型}
在定义Annotion类型,还可以设置其使用类型。
@Target(ElementType.ANNOTATION_TYPE/TYPE/CONSTRUCTIOR,FIELD/METHOD/PARAMETER/LOCAL_VARIABLE-PACKAGE/省略)
设置有效范围
@Retention(RetentionPolicy.SOURCE/CLASS/RUNTIME/省略默认为CLASS)
使用@MemberAnnotion(参数名/参数名=值)
7.访问Annotion信息
isAnnotationPresent()判断是否添加了指定类型的Annotion,getAnnotion()用来获得指定类型Annotion ,getAnnotions()获得所有类型的,getParameterAnnotions()只存在Constructor和Method中,用来获得添加了Annotion的参数,并以二维数组返回,顺序同声明顺序
java学习——第十二章(枚举和泛型)
1.枚举类型,可以取代以往常量的定义方式(通常将常量封装在类或接口中)
public enum Constants{a,b,c}使用常量时Contants.a表示
将常量放在枚举内public class ContntsTest{enum contants2{a,b}}
2.枚举除了具有参数检验外,还可以看做是一个类,他继承了java.lang.Enum类,定义一