-
transient // 不进行默认的序列化,可以自己完成,提高性能 s.writeInt(); // 自己完成 s.defaultWriteObject(); // 默认 transient关键字可以使属性不被JVM序列化,但是并不代表这个属性是不可以被序列化的,如果有需要的话可以我们自己做序列化操作,ArrayList中的Object数组就有transient关键字,这是因为这个数组里面的数据并不一定是满的,所以作者向仅仅序列化数组里面的有效数据,所以自己做了序列化操作。查看全部
-
知识点查看全部
-
1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2.序列化流(OjectOutputStream)是过滤流----writeObject 反序列化流(ObjectInputStream)----readObject 3.序列化借口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 对象实体类的序列化与反序列化 public static void main(String[] args) throws IOException, Exception { String file = "F:/IO流/序列化/test.txt"; // 1.对象的序列化 /*ObjectOutputStream oos = new ObjectOutputStream(new File查看全部
-
FileInputStream/FileOutputStream 每次一个字节的读写 DataInputStream/DataOutputStream 每次一个类型数据的读写。如:一次写入一个int类型的数据,相当于一次写入四个字节。 BufferedInputStream/BufferedOutputStream 每次读写一个缓冲区大小的数据。每次写入时必须调用实例的flush()方法来清空缓冲区。 读写效率对比:使用字节数组作为缓冲的流 > 使用原生缓冲的流 > 不使用缓冲的流查看全部
-
JAVA I/O输入输出流需要学习的东西查看全部
-
JAVA I/O输入输出流 三、RandomAccessFile的使用 1、RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 2、RandomAccessFile支持随机访问文件,可以访问文件的任意位置 3、Java文件模型:在硬盘上的文件是byte byte byte存储的,是数据的集合 4、打开文件:有两种模式rw读写、r只读 RandomAccessFile raf=new RandomAccessFile(file,"rw"); 文件指针,打开文件时指针在开头pointer=0; 5、写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 6、读方法 int b=raf.read()----->读一个字节 7、文件读写完成以后一定要关闭(Oracle官方说明) 四、字节流的使用 五、字符流的使用 六、对象的序列化和反序列化查看全部
-
File file = new File("aaa", "bb.txt");查看全部
-
Java I/O输入输出流的重点知识 【1】 1、gbk编码中文占用2个字节,英文占用1个字节 2、utf-8编码中文占用3个字节,英文占用一个字节 3、utf-16be 编码中文占用2个字节,英文占用2个字节 【2】 字节序列<-->字符串 需要编码相同 文本文件就是字节序列,可以是任意编码的字符序列 但如果我们在&&中文&&机器上直接创建文本文件,那么该文本文件只认识ansi编码~~这才具有特殊性 getBytes("utf-16be") 以及String的构造函数中可以有两个构造参数 String str2 = new String(str1, "utf-16be");查看全部
-
io流查看全部
-
RandomAccessFile类说明查看全部
-
String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是File数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }查看全部
-
1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt");查看全部
-
1、gbk编码中文占用2个字节,英文占用1个字节 2、utf-8编码中文占用3个字节,英文占用一个字节 3、utf-16be 编码中文占用2个字节,英文占用2个字节查看全部
-
FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 in.read(byet[],int,int)返回的是读到的字节的个数。是一个int 返回值。 读文件内容 常用的 标准的 方式。 FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; int byetes = 0; int j = 1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i = 0; i < bytes; i++){ System.out.print(Integer.toHexSting(buf[i] & 0xff)+ " "); if( j++ % 10 == 0){ System.out.println(); } } }查看全部
-
常用的api查看全部
举报
0/150
提交
取消