zoukankan      html  css  js  c++  java
  • 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="你好,疯子!
    ";      //
    为了实现换行保存
    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,图片正常显示即运行成功。

  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7341453.html
Copyright © 2011-2022 走看看