java32java当中的IO(一)

来源:互联网 发布:詹姆斯哈登联盟数据 编辑:程序博客网 时间:2024/05/16 17:36
  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);    }    }}
0 0
原创粉丝点击