为了账号安全,请及时绑定邮箱和手机立即绑定

Java:数据的输出流与输入流

标签:
Java Android
Java:数据的输出流与输入流
  • 字节输入流:InputStream
  • 字节输出流:OutputStream

字节输出流在我另一个博客里有介绍:http://blog.csdn.net/baidu_34750904/article/details/53572111


字节输入流(InputStream)

  • 向数组里面读取数据:
package cn.dujiang.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
/**
 * 将部分字节数组变为字符串
 * @author Dujiang
 *
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {// 此处直接抛出
        // 1、定义输出的文件的路径
        File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
        // 2、需要判断文件是否存在后才可以进行读取
        if (file.exists()) { // 文件存在
            // 3、使用InputStream进行读取
            InputStream input = new FileInputStream(file);
            // 4、进行数据读取
            byte data[] = new byte[1024]; // 准备一个1024的数组
            int len = input.read(data); // 将内容保存到字节数组之中
            // 5、关闭数据流
            input.close();
            System.out.println("【" + new String(data,0,len) + "】");

        }
    }
}
  • (实现1、利用do..while循环)单个字节数据读取
package cn.dujiang.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * 单个字节数据读取 |-由于一个文件有很多的字节数据,所以如果要读取肯定采用循环的方式完成,由于不确定循环次数,所以应该使用while循环
 * 完成,但是下面为了更好的把问题表现出来,所以使用do..while与while两种方式实现。
 * 
 * @author Dujiang
 *
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {// 此处直接抛出
        // 1、定义输出的文件的路径
        File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
        // 2、需要判断文件是否存在后才可以进行读取
        if (file.exists()) { // 文件存在
            // 3、使用InputStream进行读取
            InputStream input = new FileInputStream(file);
            // 4、进行数据读取
            byte data[] = new byte[1024]; // 准备一个1024的数组
            int foot = 0; // 表示字节数组的操作角标
            int temp = 0; // 接收每次读取的字节数据
            do {
                temp = input.read();// 读取一个字节
                if (temp != -1) {// 现在是真实的内容
                    data[foot++] = (byte) temp; // 保存读取的字节到数组之中 ,注意要进行向下转型
                }
            } while (temp != -1);// 如果现在读取的temp的字节数据不是-1,表示还有内容

            // 5、关闭数据流
            input.close();
            System.out.println("【" + new String(data, 0, foot) + "】");

        }
    }
}
  • (实现2、利用while循环)单个字节数据读取
package cn.dujiang.demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * 单个字节数据读取 |-由于一个文件有很多的字节数据,所以如果要读取肯定采用循环的方式完成,由于不确定循环次数,所以应该使用while循环
 * 完成,但是下面为了更好的把问题表现出来,所以使用do..while与while两种方式实现。
 * 
 * @author Dujiang
 *
 */
public class TestDemo {
    public static void main(String[] args) throws Exception {// 此处直接抛出
        // 1、定义输出的文件的路径
        File file = new File("F:" + File.separator + "demo" + File.separator + "demo.text");
        // 2、需要判断文件是否存在后才可以进行读取
        if (file.exists()) { // 文件存在
            // 3、使用InputStream进行读取
            InputStream input = new FileInputStream(file);
            // 4、进行数据读取
            byte data[] = new byte[1024]; // 准备一个1024的数组
            int foot = 0; // 表示字节数组的操作角标
            int temp = 0; // 接收每次读取的字节数据
            while((temp = input.read())!= -1){
                data[foot ++] = (byte) temp ;
            }
            // 5、关闭数据流
            input.close();
            System.out.println("【" + new String(data, 0, foot) + "】");

        }
    }
}
点击查看更多内容
14人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
58
获赞与收藏
1061

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消