• 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,图片正常显示即运行成功。

  • 相关阅读:
    Java18(泛型,反射,内省)
    Java17(线程池、Runnable和Callable、Lock、信号量、任务调度、Timer)
    Javaday16(守护线程,线程同步,线程通讯)
    面试题错题集04(异常)
    面试题错题集03(数组)
    面试题错题集02(面向对象)
    Javaday15(Queue,Collections工具类,多线程)
    Java中的内部接口
    ISO14229:2013 之 通过标志读数据ReadDataByIdentifier (0x22)
    Oracle数据库迁移至PostgreSQL数据库问题及解决
  • 原文地址:https://www.cnblogs.com/cxq1126/p/7341453.html
Copyright © 2020-2023  润新知