• java_IO_2


    1.字节流  InputStream(抽象类)  

     1 package ioStudy;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 
     9 /*
    10 1.创建源
    11 2.选择流
    12 3.操作
    13 4.释放资源
    14 */
    15 public class IOstudy2 {
    16     public static void main(String[] args) {
    17         File file = new File("test.txt");    //创建源
    18 
    19         InputStream is = null;
    20 
    21         try {
    22             is = new FileInputStream(file);     //  选择流
    23             int temp;
    24             while ((temp = is.read()) != -1) {      //一次读一个字节  如果包含中文可能会出现乱码  考虑使用字符流
    25                 System.out.print((char) temp);    //操作
    26             }
    27         } catch (FileNotFoundException e) {
    28             // TODO Auto-generated catch block
    29             e.printStackTrace();
    30         } catch (IOException e) {
    31             // TODO Auto-generated catch block
    32             e.printStackTrace();
    33         }finally {
    34             if(is!=null) {
    35                 try {
    36                     is.close();        //释放资源
    37                 } catch (IOException e) {
    38                     // TODO Auto-generated catch block
    39                     e.printStackTrace();
    40                 }
    41             }
    42         }
    43     }
    44 }

     1 package ioStudy;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 
     9 /*
    10 1.创建源
    11 2.选择流
    12 3.操作
    13 4.释放资源
    14 */
    15 public class IOstudy3 {
    16     public static void main(String[] args) {
    17         File file = new File("test.txt");
    18         InputStream is = null;
    19         try {
    20             is = new FileInputStream(file);
    21             byte[] buffer = new byte[5];
    22             int len;
    23             while ((len = is.read(buffer)) != -1) {    //一次读取多个
    24                 String s = new String(buffer,0,len);
    25                 System.out.print(s);
    26             }
    27         } catch (FileNotFoundException e) {
    28             // TODO Auto-generated catch block
    29             e.printStackTrace();
    30         } catch (IOException e) {
    31             // TODO Auto-generated catch block
    32             e.printStackTrace();
    33         }finally {
    34             if(is!=null) {
    35                 try {
    36                     is.close();
    37                 } catch (IOException e) {
    38                     // TODO Auto-generated catch block
    39                     e.printStackTrace();
    40                 }
    41             }
    42         }
    43     }
    44 }
    View Code

    2.OutputStream

     

     1 package ioStudy;
     2 
     3 import java.io.File;
     4 import java.io.FileNotFoundException;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.OutputStream;
     8 
     9 /*
    10 1.创建源
    11 2.选择流
    12 3.操作
    13 4.释放资源
    14 */
    15 public class IOstudy4 {
    16     public static void main(String[] args) {
    17         File file = new File("output.txt"); // 不存在会自动创建
    18         OutputStream os = null;
    19 
    20         try {
    21             os = new FileOutputStream(file,true);  //开启向后追加  不然每次都删掉原来的 再写  默认的是false
    22             String temp = "hello world!
    ";
    23             byte[] b = temp.getBytes();
    24             os.write(b, 0, b.length);
    25             os.flush();   //刷新内存
    26         } catch (FileNotFoundException e) {
    27             // TODO Auto-generated catch block
    28             e.printStackTrace();
    29         } catch (IOException e) {
    30             // TODO Auto-generated catch block
    31             e.printStackTrace();
    32         } finally {
    33             if (os != null) {
    34                 try {
    35                     os.close();
    36                 } catch (IOException e) {
    37                     // TODO Auto-generated catch block
    38                     e.printStackTrace();
    39                 }
    40             }
    41         }
    42     }
    43 }

    3.实现文件的copy

     1 package ioStudy;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 /*
    12 1.创建源
    13 2.选择流
    14 3.操作
    15 4.释放资源
    16 */
    17 public class Copy {
    18     public static void main(String[] args) {
    19         copy("test.txt","testcopy.txt");
    20     }
    21 
    22     public static void copy(String source, String destination) {
    23         File src = new File(source);
    24         File dest = new File(destination);
    25         InputStream is = null;
    26         OutputStream os = null;
    27         try {
    28             is = new FileInputStream(src);
    29             os = new FileOutputStream(dest);
    30 
    31             byte[] buffer = new byte[1034];
    32             int len;
    33             while ((len = is.read(buffer)) != -1) {
    34                 os.write(buffer, 0, len);
    35                 os.flush();
    36             }
    37         } catch (FileNotFoundException e) {
    38             // TODO Auto-generated catch block
    39             e.printStackTrace();
    40         } catch (IOException e) {
    41             // TODO Auto-generated catch block
    42             e.printStackTrace();
    43         } finally {
    44             // 流关闭的原则 先打开的后关闭
    45             if (os != null) {
    46                 try {
    47                     os.close();
    48                 } catch (IOException e) {
    49                     // TODO Auto-generated catch block
    50                     e.printStackTrace();
    51                 }
    52             }
    53 
    54             if (is != null) {
    55                 try {
    56                     is.close();
    57                 } catch (IOException e) {
    58                     // TODO Auto-generated catch block
    59                     e.printStackTrace();
    60                 }
    61             }
    62         }
    63     }
    64 }
  • 相关阅读:
    使用浏览器的 Local Storage 真的安全吗?
    传统到敏捷的转型中,谁更适合做Scrum Master?
    HBM2E Flashbolt--提升人工智能的算力
    C语言 for 循环
    C语言自加自减运算符(++i / i++)
    C语言逗号表达式
    C语言逻辑运算符
    C语言三目运算符
    C语言条件判断 if / else
    C语言 printf 函数
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10946550.html
Copyright © 2020-2023  润新知