鱼C论坛

 找回密码
 立即注册
查看: 2986|回复: 0

[学习笔记] java 笔记Io- 2

[复制链接]
发表于 2017-8-30 21:07:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 可爱的静静 于 2017-8-30 21:09 编辑

IO  字节流
字符流字节流关系图看后面面面啊啊啊啊
OutStreamFileOutputStream(字节流)的父类
FileOutputStream BufferedOutputStream(带缓冲的字节流)的父类
OutputStream(抽象类)定义了字节流所有的公用方法
常用方法:
  
void
  
  
close()
   
关闭此输出流并释放内存资源
  
  
void
  
  
flush()
   
刷新此输出流并强制写入数据到目的地。
  
  
void
  
  
[url=mk:@MSITStore:I:\java\JAVA5.0API_CN.CHM::/java/io/OutputStream.html#write(byte[])]write[/url](byte[] b)
   
b.length 个字节从指定的字节数组写入此输出流。
  
  
void
  
  
[url=mk:@MSITStore:I:\java\JAVA5.0API_CN.CHM::/java/io/OutputStream.html#write(byte[], int, int)]write[/url](byte[] b, int off, int len)
     
数组从off开始  输入len个字节的数据到目的地
  
  
abstract  void
  
  
write(int b)
      
b个字节写入此输出流。
  
FileOutputStreamOutputStream的子类
结构方法有:
  
FileOutputStream(File file)
      
File对象创建FileOutputStream对象
  
           如果文件存在,则覆盖;文件不存在则创建文件
  
  
FileOutputStream(String name)
      
以文件名及路径创建FileOutputStream对象
  
           当文件存在,则覆盖;文件不存在则创建文件
  
  
FileOutputStream(String name, boolean append)
  
以文件名及路径创建FileOutputStream对象
  
           appendtrue,则以追加方式写入,
  
false以非追加方式写入
  
  
FileOutputStream(File file, boolean append)
      
File对象创建FileOutputStream对象
  
           appendtrue,则以追加方式写入,为false以非追加方式写入
  
InputStream (抽象类)定义了所有的字节输入流的方法
常用的方法有
  
int
  
  
available()
            
不收阻塞读取估计的剩余字节数
  
  
void
  
  
close()
            
关闭此输出流并释放内存资源
  
  
abstract  int
  
  
read()
        
从输入流读取下一个数据字节。
  
  
int
  
  
[url=mk:@MSITStore:I:\java\JAVA5.0API_CN.CHM::/java/io/InputStream.html#read(byte[])]read[/url](byte[] b)
  
从输入流中读取一定数量的字节并将其存储在缓冲区数组 b 中。
  
  
int
  
  
[url=mk:@MSITStore:I:\java\JAVA5.0API_CN.CHM::/java/io/InputStream.html#read(byte[], int, int)]read[/url](byte[] b, int off, int len)
        
将输入流中读取数据存到字节数组,最多len个字节。
  
FInputStraemInputStream的子类
BufferedOutputStream(带有缓冲)和BufferedInputStream(带有缓冲)分别是FileOutputStreamFInputStraem的子类
结构方法是:
BufferedOutputStream结构方法:
new一个对象的时候必须有字节流(OutputStream)的对象 OutputStream这个是个抽象类new不了对象 可以是它的子类做参数
经典例子:
BufferedOutputStream bin=new BufferedOutputStream( newOutputStream (out.txt))
BufferedInputStream结构方法是:
new一个对象的时候必须有字节流(InputStream)的对象 InputStream这个是个抽象类new不了对象 可以是它的子类做参数
经典例子:
BufferedInputStream bre=new BufferedInputStream( new InputStream(int.txt))
BufferedInputStreamBufferedOutputStream
代码例子:
假设D盘有一张图片教做one.png
想把这个图片复制到E
代码如下:
import java.io.*;
public class out{

        /*
         1 因为BufferedOutputStream  new一个对象的时候参数是OutputStream对象
         所以第一步 是new 一个FileOutputStream对象 ,想要输出的目的地
          2 因为BufferedIntputStream  new一个对象的时候参数是IntputStream对象
         所以第一步 是new 一个FileIntputStream对象 ,想要复制的路径
         3.利用read()和write()输出到想输出的地方
         
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                try {
                        FileInputStream  a = new FileInputStream("D://a//one.png");
                        FileOutputStream  b = new FileOutputStream("E://one.png");
                        BufferedInputStream  in =new BufferedInputStream(a);
                        BufferedOutputStream  out=new BufferedOutputStream(b);
                        int re;
                                while((re=in.read())!=-1){
                                        out.write(re);
                                }
                                out.close();
                                in.close();
                } catch (FileNotFoundException e) {
                        e.printStackTrace();
                } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        }

}

2.png
1.png

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 00:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表