《三》Java IO 字节输入输出流

那么这篇博客我们讲的是字节输入输出流:InputStream、OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam、FileOutStream)

  

 

 1、字节输出流:OutputStream

?


1

2

3

public abstract class OutputStream

      extends Object

      implements Closeable, Flushable

  这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。

  方法摘要:

  

 

  下面我们用 字节输出流 OutputStream 的典型实现 FileOutputStream 来介绍:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//1、创建目标对象,输出流表示把数据保存到哪个文件。不写盘符,默认该文件是在该项目的根目录下

        File target = new File("io"+File.separator+"a.txt");

        //2、创建文件的字节输出流对象,第二个参数是 Boolean 类型,true 表示后面写入的文件追加到数据后面,false 表示覆盖

        OutputStream out = new FileOutputStream(target,true);

        //3、具体的 IO 操作(将数据写入到文件 a.txt 中)

            /**

             * void write(int b):把一个字节写入到文件中

             * void write(byte[] b):把数组b 中的所有字节写入到文件中

             * void write(byte[] b,int off,int len):把数组b 中的从 off 索引开始的 len 个字节写入到文件中

             */

        out.write(65); //将 A 写入到文件中

        out.write("Aa".getBytes()); //将 Aa 写入到文件中

        out.write("ABCDEFG".getBytes(), 1, 5); //将 BCDEF 写入到文件中

        //经过上面的操作,a.txt 文件中数据为 AAaBCDEF

         

        //4、关闭流资源

        out.close();

        System.out.println(target.getAbsolutePath());

  

 

 2、字节输入流:InputStream

?


1

2

3

public abstract class InputStream

  extends Object

  implements Closeable

  这个抽象类是表示输入字节流的所有类的超类。

  方法摘要:

  

  下面我们用 字节输出流 InputStream 的典型实现 FileInputStream 来介绍:

   

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

//1、创建目标对象,输入流表示那个文件的数据保存到程序中。不写盘符,默认该文件是在该项目的根目录下

            //a.txt 保存的文件内容为:AAaBCDEF

        File target = new File("io"+File.separator+"a.txt");

        //2、创建输入流对象

        InputStream in = new FileInputStream(target);

        //3、具体的 IO 操作(读取 a.txt 文件中的数据到程序中)

            /**

             * 注意:读取文件中的数据,读到最后没有数据时,返回-1

             *  int read():读取一个字节,返回读取的字节

             *  int read(byte[] b):读取多个字节,并保存到数组 b 中,从数组 b 的索引为 0 的位置开始存储,返回读取了几个字节

             *  int read(byte[] b,int off,int len):读取多个字节,并存储到数组 b 中,从数组b 的索引为 0 的位置开始,长度为len个字节

             */

        //int read():读取一个字节,返回读取的字节

        int data1 = in.read();//获取 a.txt 文件中的数据的第一个字节

        System.out.println((char)data1); //A

        //int read(byte[] b):读取多个字节保存到数组b 中

        byte[] buffer  = new byte[10];

        in.read(buffer);//获取 a.txt 文件中的前10 个字节,并存储到 buffer 数组中

        System.out.println(Arrays.toString(buffer)); //[65, 97, 66, 67, 68, 69, 70, 0, 0, 0]

        System.out.println(new String(buffer)); //AaBCDEF[][][]

         

        //int read(byte[] b,int off,int len):读取多个字节,并存储到数组 b 中,从索引 off 开始到 len

        in.read(buffer, 0, 3);

        System.out.println(Arrays.toString(buffer)); //[65, 97, 66, 0, 0, 0, 0, 0, 0, 0]

        System.out.println(new String(buffer)); //AaB[][][][][][][]

        //4、关闭流资源

        in.close();

  

 

3、用字节流完成文件的复制

  

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

/**

         * 将 a.txt 文件 复制到 b.txt 中

         */

        //1、创建源和目标

        File srcFile = new File("io"+File.separator+"a.txt");

        File descFile = new File("io"+File.separator+"b.txt");

        //2、创建输入输出流对象

        InputStream in = new FileInputStream(srcFile);

        OutputStream out = new FileOutputStream(descFile);

        //3、读取和写入操作

        byte[] buffer = new byte[10];//创建一个容量为 10 的字节数组,存储已经读取的数据

        int len = -1;//表示已经读取了多少个字节,如果是 -1,表示已经读取到文件的末尾

        while((len=in.read(buffer))!=-1){

            //打印读取的数据

            System.out.println(new String(buffer,0,len));

            //将 buffer 数组中从 0 开始,长度为 len 的数据读取到 b.txt 文件中

            out.write(buffer, 0, len);

        }

        //4、关闭流资源

        out.close();

        in.close();

时间: 2024-10-12 17:42:03

《三》Java IO 字节输入输出流的相关文章

java Io文件输入输出流 复制文件

package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class InputAndOutputFile{ //都是纯手打  如果复制显示不能复制 也懒得改  手敲 格式不好看见谅 public static void main(String

Java IO详解(三)------字节输入输出流

File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocean/p/6854098.html 那么这篇博客我们讲的是字节输入输出流:InputStream.OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam.FileOutStream)  1.字节输出流:OutputStream public abstrac

Java和C#输入输出流方法

1,JAVA中操作方法: import java.io.*; public class FileInputStreamTest { public static void main(String[] args) throws IOException { //创建字节输入流 FileInputStream fis = new FileInputStream("FileInputStreamTest.java"); //创建一个长度为1024的竹筒 byte[] bbuf = new byt

【java】缓冲字符字节输入输出流:java.io.BufferedReader、java.io.BufferedWriter、java.io.BufferedInputStream、java.io.BufferedOutputStream

BufferedReader最重要,因为有个方法public String readLine() 1 package System输入输出; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 7 public class Test { 8 public static void main(String[] args) throws IOExce

java 字节输入输出流

/* 字节流: InputStream OutputStream */ import java.io.*; class FileStream { public static void main(String[] args) throws IOException { outputFile(); //inputFile_1(); inputFile_2(); } /*不利用数组进行缓冲的方法*/ public static void outputFile() throws IOException /

Java I/O输入输出流详解

一.文件的编码               开发时一定要注意项目默认的编码!!!!!!!!               文件操作的时候一定要记得关闭!!!!!!!!        ASCII:美国标准信息交换码,用一个字节的7位可以表示一个字符        ISO8859-1:拉丁码表,西欧标准字符集,用一个字节的8位表示        GB2312:中文编码表,用两个字节来表示中文编码        GBK:中文编码表的升级,融合了更多表示中文文字符号        GB18030:GBK的

Java标准流输入输出流In(Out)putStream,ReaderWriter等总结(1)

一,标准输出流System.out System.out向标准输出设备输出数据,方法有很多: print()和println()的主要区别是后者输出完了主动转行前者不转行,printf()主要是格式化输出 一,标准输入流System.in System.in读取标准输入设备数据(从标准输入获取数据,一般是键盘)int read() //返回ASCII码.若,返回值=-1,说明没有读取到任何字节读取工作结束. int read(byte[] b)//读入多个字节到缓冲区b中返回值是读入的字节数 p

java实验8-Java输入输出流

1 读写文件 [实验目的] (1)掌握文本文件的读写方法. (2)掌握随机文件的读写方法. (3)掌握InputStream.OutputStream抽象类的基本使用. (4)掌握FileInputStream.FileOutputStream.DataInputStream.DataOutputStream 抽象类的基本使用. [实验要求] 要求一:建立StreamDemo类,实现标准输入输出流的建立,能从键盘读取字符串并输出该字符串. 要求二:应用Java的输入输出流,对一个图片文件进行处理

java IO流 之 输出流 OutputString()

Java学习重点之一:OutputStream 字节输出流的使用 FileOutPutStream:子类,写出数据的通道 步骤: 1.获取目标文件 2.创建通道(如果原来没有目标文件,则会自动创建一个) 3.写入数据 write() 4.释放资源 注意: (1)如果目标文件不存在,那么会自己创建一个目标文件 (2)如果目标文件存在,先将里面的数据清空,再写入数据 (3)想在原有的数据上写入数据,则在创建通道的时候使用 构造方法: OutPutStream(File file,Boolean ap