• java读取文件


    1、字节形式读取

     1 @Test
     2 public void test1(){
     3     String path = "d://temp/test.txt";
     4     readFile(path);
     5 }
     6 
     7 private void readFile(String path) {
     8     //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader
     9     File file = new File(path);
    10     InputStream in = null;
    11     try {
    12         in = new FileInputStream(file);
    13         int tempStr = 0;
    14         while((tempStr = in.read())!=-1){
    15             System.out.write(tempStr);
    16         }
    17     } catch (FileNotFoundException e) {
    18         // TODO Auto-generated catch block
    19         e.printStackTrace();
    20     } catch (IOException e) {
    21         // TODO Auto-generated catch block
    22         e.printStackTrace();
    23     } 
    24 }

    改进方式一次读取多个字节

     1 private void readFile(String path) {
     2     //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader
     3     File file = new File(path);
     4     InputStream in = null;
     5     try {
     6         in = new FileInputStream(file);
     7         byte[] byteArr = new byte[1024];
     8         while(in.read(byteArr)!=-1){
     9             System.out.write(byteArr);
    10         }
    11     } catch (FileNotFoundException e) {
    12         // TODO Auto-generated catch block
    13         e.printStackTrace();
    14     } catch (IOException e) {
    15         // TODO Auto-generated catch block
    16         e.printStackTrace();
    17     } 
    18 }

    2、字符形式读取

     1 private void readFile(String path) {
     2     File file = new File(path);
     3     InputStreamReader in = null;
     4     try {
     5         in = new InputStreamReader(new FileInputStream(file));
     6         int tempStr;
     7         while((tempStr=in.read())!=-1){
     8             System.out.write(tempStr);
     9         }
    10     } catch (FileNotFoundException e) {
    11         // TODO Auto-generated catch block
    12         e.printStackTrace();
    13     } catch (IOException e) {
    14         // TODO Auto-generated catch block
    15         e.printStackTrace();
    16     } finally {
    17         if(in!=null)
    18             try {
    19                 in.close();
    20             } catch (IOException e) {
    21                 // TODO Auto-generated catch block
    22                 e.printStackTrace();
    23             }
    24     }
    25 }

    改进方式

     1 private void readFile(String path) {
     2     File file = new File(path);
     3     InputStreamReader in = null;
     4     try {
     5         in = new InputStreamReader(new FileInputStream(file));
     6         char[] charArr = new char[1024];
     7         while(in.read(charArr)!=-1){
     8             System.out.print(charArr);
     9         }
    10     } catch (FileNotFoundException e) {
    11         // TODO Auto-generated catch block
    12         e.printStackTrace();
    13     } catch (IOException e) {
    14         // TODO Auto-generated catch block
    15         e.printStackTrace();
    16     } finally {
    17         if(in!=null)
    18             try {
    19                 in.close();
    20             } catch (IOException e) {
    21                 // TODO Auto-generated catch block
    22                 e.printStackTrace();
    23             }
    24     }
    25 }

    3、以行为单位读取文件,常用于读面向行的格式化文件,如csv等

     1 private void readFile(String path) {
     2     File file = new File(path);
     3     BufferedReader in = null;
     4     try {
     5         in = new BufferedReader(new FileReader(file));
     6         String tempStr = "";
     7         while((tempStr=in.readLine()) != null){
     8             System.out.println(tempStr);
     9         }
    10     } catch (FileNotFoundException e) {
    11         // TODO Auto-generated catch block
    12         e.printStackTrace();
    13     } catch (IOException e) {
    14         // TODO Auto-generated catch block
    15         e.printStackTrace();
    16     } finally {
    17         if(in!=null)
    18             try {
    19                 in.close();
    20             } catch (IOException e) {
    21                 // TODO Auto-generated catch block
    22                 e.printStackTrace();
    23             }
    24     }
    25 }

     

  • 相关阅读:
    【leetcode】Binary Search Tree Iterator
    【leetcode】Palindrome Partitioning II
    【leetcode】Best Time to Buy and Sell Stock III
    【leetcode】Best Time to Buy and Sell Stock II
    【leetcode】Longest Consecutive Sequence
    【leetcode】Factorial Trailing Zeroes
    【leetcode】Simplify Path
    【leetcode】Generate Parentheses
    【leetcode】Combination Sum II
    【leetcode】Combination Sum
  • 原文地址:https://www.cnblogs.com/ikuman/p/3283118.html
Copyright © 2020-2023  润新知