Java文件(io)编程——文件字节流的使用

时间:2022-06-14 21:40:11

案例1:

演示FileInputStream类的使用(用FileInputStream的对象把文件读入到内存)

首先要在E盘新建一个文本文件,命名为test.txt,输入若干字符

 1 public class Demo_2 {
2
3 public static void main(String[] args) {
4 File f=new File("e:\\test.txt"); //得到一个文件对象f,指向e:\\test.txt
5 FileInputStream fis=null;
6
7 try {
8 fis=new FileInputStream(f); //因为File没有读写的能力,所以需要使用FileInputStream
9
10 byte []bytes=new byte[1024]; //定义一个字节数组,相当于缓存
11 int n=0; //得到实际读取到的字节数
12
13 while((n=fis.read(bytes))!=-1){ //循环读取
14 String s=new String(bytes,0,n); //把字节转成String
15 System.out.println(s);
16 }
17
18 } catch (Exception e) {
19 e.printStackTrace();
20 }finally{ //关闭文件流必须放在这里
21 try {
22 fis.close();
23 } catch (IOException e) {
24 e.printStackTrace();
25 }
26 }
27 }
28 }

运行程序,控制台输出test.txt中输入的字符。

案例2:

演示FileOutputStream的使用(把输入的字符串保存到文件中)

 1 public class Demo_3 {
2
3 public static void main(String[] args) {
4
5 File f=new File("e:\\ss.txt");
6 FileOutputStream fos=null; //字节输出流
7
8 try {
9 fos=new FileOutputStream(f);
10
11 String s="你好,疯子!\r\n"; //\r\n为了实现换行保存
12 String s2="24个比利";
13
14 fos.write(s.getBytes());
15 fos.write(s2.getBytes());
16 } catch (Exception e) {
17 e.printStackTrace();
18 }finally{
19 try {
20 fos.close();
21 } catch (IOException e) {
22 e.printStackTrace();
23 }
24 }
25 }
26 }

打开E盘名为ss.txt的文本文档,存在输入的字符。

 案例3:图片拷贝

首先在E盘准备一张图片,命名为a.jpg

 1 public class Demo_4 {
2
3 public static void main(String[] args) {
4 //思路 先把图片读入到内存,再写入到某个文件
5 //因为图片是二进制文件,只能用字节流完成
6
7 FileInputStream fis=null; //输入流
8
9 FileOutputStream fos=null; //输出流
10 try {
11 fis=new FileInputStream("e:\\a.jpg");
12 fos=new FileOutputStream("d:\\a.jpg");
13
14 byte []bytes=new byte[1024];
15 int n=0; //记录实际读取到的字节数
16 while((n=fis.read(bytes))!=-1){ //read函数返回读入缓冲区的字节总数
17 fos.write(bytes); //输出到指定文件
18 }
19 } catch (Exception e) {
20 e.printStackTrace();
21 }finally{
22 try {
23 fis.close();
24 fos.close();
25 } catch (Exception e) {
26 e.printStackTrace();
27 }
28 }
29 }
30 }

打开D盘,点击a.jpg,图片正常显示即运行成功。