继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

读取字节流,字符流中全部数据的两种方式

xiaoxin3839519
关注TA
已关注
手记 23
粉丝 9
获赞 227

1.读取字节流FileInputStream中的全部字节

package IO;

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

public class FileInputStreamTest {
    int c=0;
    public void inputStream() throws IOException  {
        InputStream i=new FileInputStream("E:\\xiaoxin\\workspace\\i.txt");
        byte bytes[]=new byte[1024];
        int e;
        int d;

        //1.从流中一个一个字节读取
                //i.read()返回 0 到 255 范围内的 int 字节值,int的低八位
        while((e=i.read())!=-1){
            if(e<15){
                System.out.print("0");
            }
            System.out.print(Integer.toHexString(e&0xff)+" ");  
            //每打印十个字节,换一行
            c++;
            if(c%10==0){
                System.out.println();
            }
        }*/
        //2.从流中批量读取字节数据
                //I.read(bytes,0,bytes.length)表示从流中批量读取字节数据到字节数组bytes中,从0位置开始放,最多放bytes.length个字节
                //I.read(bytes,0,bytes.length)的返回值表示读到的有效字节个数,如果I.read(bytes,0,bytes.length)=-1,表示EOF表示,没有任何字节可取或者已读取完毕
        while((d=i.read(bytes, 0,bytes.length))!=-1){
            for(int j=0;j<d;j++){
                if(bytes[j]<=15&&bytes[j]>=0){
                    System.out.print("0");
                }
                System.out.print(Integer.toHexString(bytes[j]&0xff)+" ");
                c++;
                if(c%10==0){
                    System.out.println();
                }
            }
        }
        i.close();

    }
    public static void main(String[] args) {
        FileInputStreamTest is=new FileInputStreamTest();
        try {
            is.inputStream();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

2.读取字符流FileReader中的全部字符

package IO;

import java.io.FileReader;
import java.io.IOException;

public class InputStreamReaderTest {

    public static void main(String[] args) throws IOException {
        FileReader isr=new FileReader("E:\\xiaoxin\\workspace\\Imooc2\\i3.txt");
        //从流中一个一个字符读取
                //isr.read返回 0 到 65535 范围内的 int 字符(相当于两个字节),int的低十六位
        int a;
        while((a=isr.read())!=-1){
            System.out.print((char)a);
        }

        //从流中批量读取字符
        int b;
        char chars[]=new char[1024*1024];
        while((b=isr.read(chars, 0, chars.length))!=-1){
            //把读取的有效字符转换成字符串并输出
            String s=new String(chars,0,b);
            System.out.println(s);
        }

    }

}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP