-
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问查看全部
-
GBK为默认编码中文占用两个字节,英文占用一个字节 UTF-8中文占用3个字节,英文占用一个字节 UTF-16中文占用2个字节,英文占用2个字节 除了默认编码,打印时候是什么编码,需要声明如:byte[] bytes=s.getByte("utf-8"),不声明就是乱码查看全部
-
中文占两个字节,英文占一个字节查看全部
-
Integer.toHexString把字节转换成(int类)以16进制的方式显示查看全部
-
字符流的过滤器 BufferedReader--->readLine一次读一行 BufferedWriter/PrintWriter --->写一行查看全部
-
字符流可以识别换行符号 所读取文件的时候,文件的编码要和项目的编码一致,否则会出现乱码 New InputStreamReader(inputstream,uncode)默认的项目编码,操作的时候要写文件本身的编码格式查看全部
-
File类——文件信息,不能访问文件 了解构造函数的几种情况 File的静态变量separator设置分隔符查看全部
-
1111111查看全部
-
字符流 文本和文本文件 java的文本(char)是16位无符号的整数,是字符的Unicode编码(双字节编码)文件是byte,byte,byte的数据序列 文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的储存序列 字符流(Reader Writer) 字符的处理,一次处理一个字符,字符的底层,仍然是基本的字节序列 字符流的基本实现 InputStreamReader完成byte流解析为char流,按照编码解析 OutputStreamWriter提供char流到byte流,按照编码处理查看全部
-
BufferedInputStream,BufferedOutputStream 这两个流类为IO提供了带缓冲区的操作,一般在打开文件写入或读取操作的时候,都会加入缓冲,这种流模式提高了IO的性能。 Buffer中read 和 FileinputStream read 读取的位置不同,一个是内存中读,一个是文件中读! 使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。 int len = 0; byte[] buf = new byte[64]; //缓冲区的意义在于使用的字节数组不必很大,使用适当大的byte数组的Buffered方法,就可以与超过缓冲区大小(比如1M大)的byte数组的普通copyFile方法的效率相当。 while((len = bis.read(buf)) != -1){ bos.write(buf,0,len); //此处不要加flush,否则会失去缓冲的意义 }查看全部
-
DataOutputStream/DateInputStream对流功能的扩展,可以更加方便的读取,int,long,string等类型的数据 writeInt()/writeDouble()/writeUTF() writeUTF()使用UTF-8写出 writeChars()使用utf-16be utf-8编码,中文的字符大小不一定,中文为2-4个字节查看全部
-
FileOutputStream具体实现了向文件中写出byte数据的方法 out.write(buf, 0, b);里面的这个0之所以一直是0,是因为文件的读取过程中是有一根指针的,这根指针是会变化的,当读取一次后,指针会自动移动到第二次要开始读取的位置,所以这里的0不是指文件中的位置,而是指针当前的相对于指针本身的位置!查看全部
-
byte类型8位,int类型32位,为了避免数据转换错误,通过&0xff将高24位清零 如果使用批量读取(使用read方法(byte[],int start,int size)); 设置缓存区的方式,从字节数组中读取查看全部
-
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。 RandomAccessFile 支持随机访问文件,可以访问文件的任意位置查看全部
-
字符流查看全部
举报
0/150
提交
取消