-
gbk编码中文占2个字节,英文占1个字节, utf-8编码,中文占用3个字节,英文占用1个字节 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码查看全部
-
文本文件是字节序列查看全部
-
1、byte 类型 8 位,int 类型 32 位,为了避免数据转换错误,通过 & 0xff 将高 24 位清零 2、long time = System.currentTimeMillis() 当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量) 3、is.read() 单字节适合读取 小 文件 is.read(byte[] bytes,int star,int size) 字节数组适合读取 大 文件查看全部
-
文件常用的基本操作(API): 1、File类只能用于表示文件(目录)的信息(名称,大小等),不能用于文件内容的访问 File file=new File("XXX") 2、文件是否存在 file.exists() 3、创建文件 file.mkdir(s)() file.creaetNewFile() 4、是否是目录、文件或是否存在 file.isDirectory() file.isFile() 5、删除文件、目录 file.delete() 6、文件路径(file) 7、文件名称(file.getName())查看全部
-
(v>>>24) & 0xFF 这是把v前面右移所产生的0去掉
raf.seek(0);RandomAccessFile的定位方法;
查看全部 -
gbk编码中,中文占用2个字节,英文占用1个字节
utf-8编码中,中文占用3个字节,英文占用1个字节
java是双字节编码 utf-16be,中文占用2个字节,英文占用2个字节
当你的字节序列使用某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码,不写的话会使用项目默认的编码方式
文本文件就是字节序列,可以是任意编码的字节序列,如果我们在中文机器上创建文本文件,那么该文本文件只认识ansi编码
查看全部 -
对象的序列化和反序列化
1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化
2.序列化流(ObjectOutputStream),是过滤流-----writeObject
反序列化流(ObjectInputStream)-----readObject
3.序列化接口(Serializable) implements Serializable
对象必须实现序列化接口,才能进行序列化,否则将出现异常
这个接口,没有任何方法,只是一个标准查看全部 -
RandomAcessFile
java 提供的对文件类型的访问类,即可以读文件,也可以写文件
支持随机访问文件,可以访问文件的任意位置1.Java文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
2.打开文件
有两种模式“rw”读写 “r”只读
RandomAcessFile raf = new RandomAcessFile ( file , "rw");
文件指针,打开文件时指针在开头 pointer = 0
3.写方法
raf.write(int)-->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
4.读方法
int b = raf.read()-->读一个字节
5.文件读写完成以后一定要关闭(Oracle官方说明)
查看全部 -
Java.io.File类用于表示文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
查看全部 -
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官方说明)
查看全部 -
关于read返回值的问题:
一开始read返回的是读取的字节数;当把内容都读完后,返回的数为-1
举个例子:
例如要读取的文件字节数是100,buf.length为60。
第一次read返回给bytes的是读取的字节数:大小为数组的长度60;
第二次read返回给bytes的还是读取的字节数,但大小为剩下的100-60=40了;
第三次由于到文件末尾,100个字节内容都读完了,read就返回-1给bytes
综上,文件没读完时,read返回的是读取的字节数;文件读完后,read返回的是-1,用于判断文件是否读取完成。
查看全部 -
getBytes()方法转换成byte数组;Integer.toHexString()以十六进制显示;(b & Oxff)去掉前面的零。查看全部
-
缓冲字节流这一节希望重新录更正错误,使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。 public class IOUtilTest4 { public static void main(String[] args) throws IOException { long star = System.currentTimeMillis(); // IOUtil.copyFileByByte(new File("E:\\SHL\\imooc\\宮崎歩 - brave heart.mp3"), new File("E:\\SHL\\imooc\\copy..宮崎歩 - brave heart.mp3"));//5w多毫秒 // IOUtil.copyFileByBuffer(new File("E:\\SHL\\imooc\\宮崎歩 - brave heart.mp3"),new File("E:\\SHL\\imooc\\copyFileByBuffer..宮崎歩 - brave heart.mp3"));//200多毫秒 IOUtil.copyFile(new File("E:\\SHL\\imooc\\宮崎歩 - brave heart.mp3"),new File("E:\\SHL\\imooc\\copyFile宮崎歩 - brave heart.mp3"));//15毫秒 long end = System.currentTimeMillis(); System.out.println(end-star); } }查看全部
-
GBK编码中文占两字节,英文占一字节; UTF-8编码中文占3字节,英文占1字节; java是双字节编码,UTF-16be编码,中英文占用都是两个字节。查看全部
-
IO流(输入流、输出流) 字节流、字符流 1.字节流 1)InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 2)EOF = End 读到-1就都到了结尾 3)输入流基本方法 int b = in.read();读取一个字节无符号填充到int低八位.-1是 EOF in.read(byte[] buf) 读取数据填充到字节数组buf in.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长度的字节到流 5)FileInputStream -->具体实现了在文件上读取数据 6)FileOutputStream 实现了向文件中写出byte数据的方法 7)DataOutputStream/DataInputStream 对流功能的扩展,可以更加方便的读取int long字符等类型数据 DataOutputStream writeInt()/writeDouble()/writeUTF() 8)BufferedInputStream&BufferedOutputStream 这两个流类为IO提供了带缓冲区的操作,一般打开文件进行写入或读取操作时,都会加上缓冲,这种流模式提高了IO的性能查看全部
举报