-
I/O流,InputStream,OutputStream查看全部
-
RandomAccessFile访问文件操作查看全部
-
String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件查看全部
-
使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。查看全部
-
对象序列化:Object-->byte序列 反序列化:byte--->Object查看全部
-
字符流操作的大部分都是文本文件查看全部
-
字节流,字符流查看全部
-
Stream的方法查看全部
-
ASCII:最早用来保存英文的编码; 扩展字符集:对ASCII编码的扩充; GB2312:对ASCII的中文扩展,其中GB2312编码的字符称为“全角”,原ASCII编码的字符被称为“半角”; GBK标准:对GB2312的扩充; GB18030:对GBK标准的扩充,为了适应我国各少数民族的字符; UNICODE:ISO国际组织研发的可涵盖全球所有字符的编码,UNICODE编码在网络传输中,有两个标准,UTF-8和UTF-16,分别对应每次传输8个位和16个位。查看全部
-
2.为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,发送方需要把这个Java对象转换为字节序列,然后在网络上传送;另一方面,接收方需要从字节序列中恢复出Java对象。 当我们明晰了为什么需要Java序列化和反序列化后,我们很自然地会想Java序列化的好处。其好处一是实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里),二是,利用序列化实现远程通信,即在网络上传送对象的字节序列。查看全部
-
缓冲字节流这一节希望重新录更正错误,使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭查看全部
-
IO流(输入流、输出流) 字节流、字符流 1. 字节流 1) 有两个父类:InputStream和OutputStream InputStream是抽象类,抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2) EOF = End 或 读到-1就读到结尾 3) 输入流基本方法(in是输入流对象) int b = in.read();//读取一个字节无符号填充到int低八位,-1是EOF in.read(byte[] buf) 读取数据填充到字节数组buf int.read(byte[] buf,int start,int size) 读取数据到字节数组buf,从buf的start位置开始存放size长度的数据 4) 输出流基本方法(进行写的操作) out.write(int b) 写出一个byte到流,b的低八位 out.write(byte[] buf) 将buf字节数组都写入到流 out.write(byte[] buf,int start,int size) 字节数组buf从start位置开始写size长度的字节到流查看全部
-
RadomAccessFile类对文件进行读写操作。 数据是按byte存储的,RadomAccessFile类的write和read方法,每次读一个字节或写一个字节。FilePointer指针指向读写位置。(通过RadomAccessFile对象获取指针位置)。 完成读写操作后,通过RadomAccessfile对象关闭操作。 例:RadomaccessFile rw=new RadomAccessFile(文件名,“rw”或“r”); rw.getFilePointer();------>获取指针位置。 rw.close();---------------->关闭。 File类创建或打开一个文件,RadomAccessFile类进行读写操作。查看全部
-
RandomAccessFile查看全部
-
分隔符:File.Seperator查看全部
举报
0/150
提交
取消