-
transient关键字
在修饰某些变量时,这个变量不会被系统默认序列化,可以用其他类型来单独进行序列化。在反序列化时也必须进行相同类型的反序列化操作。
//序列化
private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException{
s.defaultwriteObject();//将无trensient关键字修饰的元素进行系统默认类型的序列化操作。
s.writeInt();//将transient关键字修饰的元素进行自定义的序列化操作。
}
//反序列化
private void readObject(java.io.ObjectInputStream s)throws java.io.IOException{
S.defaultReadObject();//将虚拟机默认反序列化的元素进行反序列化操作。
this.stuage=s.readInt();//加了transient关键字的元素进行对应的序列化类型的反序列化。
}
transient关键字的作用在某些情况下能提高存储性能。
查看全部 -
//对象的序列化(Serializable)与反序列化
//对象的序列化就是将Object转换成byte序列,反之为反序列化。
ObjectOutputStream(序列化流)/ObjectInputStream(反序列化流)。
//序列化时对象必须实现序列化的接口,否则将出现异常。
//只有将对象序列化以后才能反序列化。
//对象ob序列化
ObjectOutputStream oos=new ObjectOutputStream(FileOutputStream);
Object ob=new Object(参数);
oos.writeObject();
oos.close();
//对象反序列化
ObjectInputStream ops=new ObjectInputStream(FileInputStream);
Object ob1=(Object)ops.readObject();
ops.close();
查看全部 -
读文件的典型方法
查看全部 -
eedd查看全部
-
if((b<=in.read())!=-1){ //单位数(即一位数)前面补0 System.out.println("0"); }
查看全部 -
DAIMA DAIMA DAIMA
查看全部 -
4)输出流基本方法
out.write(int b)写出一个byte到流,b的低8位
out.write(byte[]buf)将buf字节数组都写入到流
out.write(byte[]buf,int start,int size)字节数组buf从start位置开始写size长度的字节到流
查看全部 -
IO流(输入流、输出流)字节流、字符流
1.字节流
1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式OutputStream抽象了应用程序写出数据的方式
2)EOF=End 读到-1就读到结尾
3)输入流基本方法
int b=in.read0;读取一个字节无符号填充到int低八位.-1是EOF in.read(bytel buf)读取数据填充到字节数组buf in.read(byte[]buf,int start,int size)读取数据到字节数组buf从buf的start位置开始存放size长度的数据
查看全部 -
Java.io.File类用于表示文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
查看全部 -
文本文件就是字节序列
可以是任意编码的字节序列
如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansi编码
打开文本,另存为时可以查看到编码类型
查看全部 -
/*当你的字节序列式某种编码时,这个时候想把字节序列变成 *字符串,也需要用这种编码方式,否则会出现乱码 */String str1=new String(bytes4);∥用项目默认的编码 System.outprintln(str1); String str2=new String(bytes4,"utf-16be"); System.outprintin(str2);
查看全部 -
//把字符串转化为字节数组 Strings="慕课ABC"; byte[] bytes1=s.getBytes();
for(byte b:bytes1){ //把字节(转换成了int)以16进制的方式显示 System.outprintln(Integer.toHexstring(b&Oxff));//0xff--把前面24个零去掉,只留下后八位
gbk--中文占用2个字节,英文占用1个字节
utf-8--中文占用3个字节,英文占用1个字节
utf-16be--中文占用2个字节,英文占用2个字节
查看全部 -
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
(1)java文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
(2)打开文件
有两种模式"rw"(读写)"r"(只读)
RandomAccessFile raf=new RandomeAccessFile(file,"rw")
文件指针,打开文件时指针在开头pointer=0;
(3)写方法
raf.write(int)--->只写一个字节(后8位,如raf.write('A' 输出显示的为65),同时指针指向下一个位置,准备再次写入(4)读方法
int b=raf.read0--->读一个字节
(5)文件读写完成以后一定要关闭(Oracle官方说明)
查看全部 -
对象做递归操作,File提供了直接返File]files =dir.listFiles0;/返回的是直接子目录(文件)的抽象if(files!=null&&files.length>0){
for(File file:files){
if(file.isDirectory0){
//递归
listDirectory(file);
}else{
System.outprintln(file);
}
}
}
查看全部 -
String[] filenames=dir.list();//返回的事字符串数组,即当前目录下子文件的名称
查看全部
举报