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

案例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(只转0到n位)
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,图片正常显示即运行成功。

posted @ 2017-08-10 21:14  最咸的鱼  阅读(371)  评论(0编辑  收藏  举报