java32java当中的IO(一)

  1. I/O的操作目标
    从数据源中读取数据,以及将数据写入到数据目的地当中。文件、屏幕、网络
    输入流、输出流:stream 建立传输数据的管道。
    IO的流向
  2. IO的分类方法
    1.输入流和输出流
    2.字节流:读取数据以字节byte为单位处理
    字符流: 读取数据以字符为单位
  3. 读取文件和写入文件的方法
    1.节点流:
    2.处理流:在节点流的基础上对数据进行加工
  4. I/O的字节流核心类
    InputStream——>FileInputStream:从硬盘文件中读取数据
    OutputStream—->FileOutputStream:把数据写入硬盘中
    InputStream和OutputStream是所有字节流的父类。都是抽象类无法生成对象。
    核心类的核心方法:InputSteam:
    int read(byte[]b,int off,intlen)
    byte[] b:字节类型数组
    int off:读进的数据从数组的哪一位开始写入
    len:读取的数据做大长度
    返回值为读取数据字节的长度
    OutputStream:
    void write(byte[] b,int off,int len)
    byte[]b:将要写入硬盘的数组
    int off:从数组哪位开始往硬盘内写入
    int len:写入硬盘数据的长度。
    read方法的返回值为数组字节长度,可以用此定写入字节的长度。

实例

//导入类
import java.io.*;
class TestIo{
    public static void main(String[] args){
        //声明输入流的对象
        FileInputStream fis = null;
        try{
            //生成输入流的对象
            fis = new FileInputStream("f:/src/from.txt");
            //生成一个字节数组
            byte[] buffer = new byte[100];
            //调用输入流对象那个的read方法,读取数据
            fis.read(buffer,0,buffer.length);
            for(int i = 0;i < buffer.length;i++){
                System.out.println(buffer[i]);
            }
        }
    catch(Exception e){
        System.out.println(e);
    }
    }
}

其中F:/src/from.txt中存放的是abcd
输出结果为字节的ASCII码值979899100以及96个0。
将字符以ASCII码值读取进来。
可以使用String s = new String(buffer);s = s.trim();System.out.println(s);
trim()方法可以去除字符串收尾的空格。

  • 由于在输入时返回一个输入字节数据的长度值,可以根据此来生成一个temp来确定输出数据的长度。全部代码如下
//导入类
import java.io.*;
class TestIo{
    public static void main(String[] args){
        //声明输入流的对象
        FileInputStream fis = null;
        //声明输出流的引用
        FileOutputStream fos = null;
        try{
            //生成输入流的对象
            fis = new FileInputStream("f:/src/from.txt");
            //生成输出流的对象
            fos = new  FileOutputStream("f:/src/to.txt");
            //生成一个字节数组
            byte[] buffer = new byte[100];
            //调用输入流对象那个的read方法,读取数据
            int temp = fis.read(buffer,0,buffer.length);
            //从数组中输出数据
            fos.write(buffer,0,temp);
            //String s = new String(buffer);
            //System.out.println(s);
            //for(int i = 0;i < buffer.length;i++){
                //System.out.println(buffer[i]);
            //}
        }
    catch(Exception e){
        System.out.println(e);
    }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值