-
IO流 1.字节流 InputStream、OutputStream InputStream抽象了应用程序读取数据的方式 OutputStream抽象了应用程序写出数据的方式 输入流基本方法 int b = in.read(); in.read(byte[] buf) in.read(byte[] buf,int start,int size)//批量读取 输出流基本方法 out.write(int b) out.write(byte[] buf) out.write(byte[] buf,int start,int size) FileInputStream--->具体实现了在文件上读取数据 FileOutputStream 实现了向文件中写出byte数据的方法 DataOutputStream/DataInputStream 对"流"功能的扩展,可以更加方面的读取int,long,字符等类型数据 DataOutputStream writeInt()/writeDouble()/writeUTF() BufferedInputStream和BufferedOutputStream 这两个流类位IO提供了带缓冲区的操作,一般打开文件进行写入 或读取操作时,都会加上缓冲,这种流模式提高了IO的性能 FileOutputStream--->write() DataOutputStream-->writeXxx() BufferedOutputStream--->write() 2.字符流 字符流(Reader Writer)---->操作的是文本文本文件 字符的处理,一次处理一个字符 字符的底层任然是基本的字节序列 字符流的基本实现 InputStreamReader 完成byte流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理 FileReader/FileWriter 字符流的过滤器 BufferedReader ---->readLine 一次读一行 BufferedWriter/PrintWriter ---->写一行查看全部
-
字符流:字符流分为输出流(Reader)和输出流(Writer)。操作的是文本文件。 字符处理,一次处理一个字符 FileReader/FileWriter:可以直接写文件名的路径。与InputStreamReader相比:无法读取和写出指定的编码,容易出现乱码。 FileReader fr = new FileReader("e:\\javaio\\imooc.txt",true);//注意第二个参数,受否需要追加内容。查看全部
-
gbk编码中文占2个字节,英文占1个字节, utf-8编码,中文占用3个字节,英文占用1个字节 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码查看全部
-
FileOutputStream fos = new FileOutputStream(file,true) 查看FileOutputStream的构造方法: 文件不存在,则创建,存在,则在后面追加内容FileOutputStream(filename,append) 若没有true,则是删除后再创建FileOutputStream(filename)查看全部
-
byte 类型 8 位,int 类型 32 位,为了避免数据转换错误,通过 & 0xff 将高 24 位清零查看全部
-
/** * 文件拷贝,字节批量读取 * @param srcFile * @param destFile * @throws IOException * * JAVA的throw和throws区别: * http://zhidao.baidu.com/link?url=cOoyefusSFJRvXFuNK3vAVS_mGcE3jgWSy8CiwZk5y-N8Fa-m_cwRrNVEneXKkwMOTYHz8MIIS13gAz91Y4vZ_ */ public static void copyFile(File srcFile,File destFile)throws IOException{ if(!srcFile.exists()){ throw new IllegalArgumentException("文件:"+srcFile+"不存在"); } if(!srcFile.isFile()){ throw new IllegalArgumentException(srcFile+"不是文件"); } FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(destFile); byte[] buf = new byte[8*1024]; int b ; while((b = in.read(buf,0,buf.length))!=-1){ //将buf数组里的內容读入到该输出流中(out) out.write(buf,0,b); out.flush();//最好加上 } in.close(); out.close(); }查看全部
-
文件写出流: FileOutputStream fos = new FileOutputStream(file,true) 文件不存在,则创建,存在,则在后面追加内容 若没有true,则是删除后再创建 FileOutputStream 实现了向文件中写出byte数据的方法 文件写出流: FileOutputStream fos = new FileOutputStream(file,true) 文件不存在,则创建,否则在后面追加内容 FileOutputStream fos = new FileOutputStream(file) 文件不存在,则创建,否则,删除后再创建查看全部
-
BufferedInputSteram和BufferedOutputStream: 提供了带缓冲区的操作,一般打开文件进行写入或读取时,都会加上缓冲,提高了IO的性能。 FileOutputStream--->write()一滴一滴写 DataOutputStream--->writeXXX()相当于一瓢一瓢的写 BufferedOutputStream--->write()相当于一瓢一瓢先放入桶中,然后一整桶写 使用BufferedInputSteram和BufferedOutputStream时,要到用flush()刷新缓冲区。查看全部
-
int i = 0x7fffffff; //这是一个4个字节大小的16进制数 raf.write(i>>>24); raf.wreit(i>>>16); raf.wreit(i>>>8); raf.wreit(i) //对二进制的i进行右移操作,右移24位,即取高8位的二进制数 write()只写一个字节 (后8位) 同时指针指向下一个位置 准备再次写入,由于顺序写入,先写的后八位会变成高八位。因为要写一个占4个字节的int型的大数字,应先将最高的八位转变成最低八位,再将第二的高八位转成最低八位来依次写入。查看全部
-
eclipse常用技巧: http://www.codeceo.com/article/eclipse-tips.html查看全部
-
readInt readLong 方法都是对FileInputStream方法的包装 DataOutputStream/DataInputStream 对“流”功能的扩展,可以更加方便的读取 int,long, 字符等类型数据 DataOutputStream:使用FileOutputStream构造出来,通过包装FileOutput,可以调用FileOutput类的write方法来构造新的更方便的写方法: new DataOutputStream(new FileOutptStream(file)) wrieteUTF()采用utf-8编码写出字符串 用utf-16be写出字符串,或字符串数组 写完之后一定要关闭流 数据输入输出流: DataInputStream、DataOutputStream 是对“流”功能的扩展,方便读写 DataOutputStream dos = new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeLong(10l);字母l dos.writeDouble(10.5); //采用utf-8编码写出 dos.writeUTF("中国"); //采用utf-16be编码写出 dos.writeChars("中国");查看全部
-
int i = 0x7fffffff; //这是一个4个字节大小的16进制数 raf.write(i>>>24); //对二进制的i进行右移操作,右移24位,即取高8位的二进制数查看全部
-
一、父类实现了serializable接口,子类继承就可序列化。 1、子类在反序列化时,父类实现了序列化接口,则不会递归调用其构造函数。 二、父类未实现serializable接口,子类自行实现可序列化 2、子类在反序列化时,父类没有实现序列化接口,则会递归调用其构造函数。 *** 结论:【反序列化时】,向上递归调用构造函数会从【可序列化的一级父类结束】。即谁实现了可序列化(包括继承实现的),谁的构造函数就不会调用。查看全部
-
gbk编码中文占2个字节,英文占1个字节, utf-8编码,中文占用3个字节,英文占用1个字节 java是双字节编码utf-16be 该编码中文和英文都是2个字节 当字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 文本文件可以是任意编码的字节序列 如果在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码查看全部
-
java是双字节编码 utf-16be 中文两个字节 英文两个字节 java是双字节编码utf-16be 该编码中文和英文都是两个字节, GBK中文占两个字节,英文1个字节; utf-8中文占三个字节,英文占1个字节。 文本文件,就是字节序列。可以是任意编码的字节序列,如果我们是在中文机器上直接创建文本文件,那么该文本文件只认识ANSI编码。(联通、联这是一种巧合,他们正好符合了utf-8编码的规则。) Eclipes中什么样子的编码项目就只认识该编码的文字,换一种编码就会出现乱码。查看全部
举报
0/150
提交
取消