Java文件字节流



文件字节流


由于应用程序经常需要和文件打交道,所以InputStream专门提供了读写文件的子类:FileInputStream和FileOutputSream类。如果程序对文件的操作比较简单,比如只是顺序地读写文件,那么就可以使用FileInputStream和FileOutputSream类创建的流对文件进行读写操作。



文件字节输入流


1.创建文件字节输入流


   FileInputStream类创建的对象被称作文件字节输入流。

 ◆构造方法:

    FileInputStream(String name);

    FileInputStream(File file);

 ◆读取一个名为hello.txt的文件,建立一个文件输入流对象,如下所示:

     try { FileInputStream in = new FileInputStream("hello.txt");

        }

       catch (IOException e) {

             System.out.println("File read error:"+e );

         }


2.read方法以字节为单位读文件


    int read();

       int read(byte b[]);

       int read(byte b[],int off,int len);


示例


创建主类Demo36

还是使用这些文件


java1.png 


Demo36.java

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class Demo36 {

 

public static void main(String[] args) {

File file = new File("C:\\Users\\blue\\Desktop\\test\\a.txt");   //准备读取文件是内容

byte[] b = new byte[100];   //字节数组长度100

int count = 0;

try {

FileInputStream is = new FileInputStream(file);   //传递进来的是刚才的file对象

while((count = is.read(b)) != -1){       //让程序一直读下去,会返回-1

String string = new String(b, 0, count);   //实际的字节数个数

System.out.println(string);   //打印我们的字符串

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

运行结果


java2.png 



文件字节输出流


1.创建文件字节输出流


   FileOutputStream类创建的对象被称作文件字节输出流。

构造方法:

     FileOutputStream(String name)

     FileOutputStream(File file)


2.以字节为单位写文件


   FileOutputStream流的目的地是文件,所以文件输出流调用write(byte b[ ])方法把字节写入到文件。


示例


Demo36.java

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class Demo36 {

 

public static void main(String[] args) {

File file = new File("C:\\Users\\blue\\Desktop\\test\\a.txt");

File file2 = new File("C:\\Users\\blue\\Desktop\\test\\c.txt");

byte[] b = new byte[100];

String txt = "我是中国人";

byte[] b2 = txt.getBytes();

int count = 0;

try {

FileInputStream is = new FileInputStream(file);

while((count = is.read(b)) != -1){

String string = new String(b, 0, count);

System.out.println(string);

}

is.close();


FileOutputStream os = new FileOutputStream(file2);   //往file2里面写数字

os.write(b2);

os.close();


} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

运行结果 写入我是中国人成功


java3.png 



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

logo
© 2012-2016 www.maiziedu.com
蜀ICP备13014270号-4 Version 5.0.0 release20160127

免费领取价值1888元求职宝典!

客服热线 400-862-8862

回到顶部