Java 单字节、多字节读取文本文档中的内容

参考1:Java中try()catch{}的使用方法

参考2:The try-with-resources Statement

 

文本文档位于工程下,使用鼠标右键点击工程,选择new -> File,即可创建。

 

文本文档的格式:GBK

 

例1:单字节读取

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 
 7 public class Main {
 8 
 9     public static void main(String[] args) {
10         System.out.println(System.getProperty("user.dir"));
11 
12         File file = new File("text.txt");
13         InputStream inputStream = null;
14         
15         try {
16             if ((file.exists()) && (file.isFile())) {
17                 inputStream = new FileInputStream(file);
18                 int data = -1;
19                 do {
20                     data = inputStream.read();
21                     if (data != -1) {
22                         System.out.print((char) data);
23                     } else {
24                         System.out.print(data);
25                     }
26                 } while (data != -1);
27                 System.out.println();
28             } else if (!file.exists()) {
29                 System.out.println("The " + file.getName() + " does not exist.");
30             } else if (!file.isFile()) {
31                 System.out.println("The " + file.getName() + " is not a file.");
32             }
33         } catch (FileNotFoundException e) {
34             e.printStackTrace();
35         } catch (IOException e) {
36             e.printStackTrace();
37         } finally {
38             try {
39                 if (inputStream != null) {
40                     // Closes this input stream and releases any system resources associated with the stream.
41                     inputStream.close();
42                     System.out.println("Close the input stream.");
43                 }
44             } catch (IOException e) {
45                 e.printStackTrace();
46             }
47         }
48     }
49 }

 

改写例1:

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 
 7 public class Main {
 8 
 9     public static void main(String[] args) {
10         System.out.println(System.getProperty("user.dir"));
11 
12         File file = new File("text.txt");
13         
14         try (InputStream inputStream = new FileInputStream(file)) {
15             if ((file.exists()) && (file.isFile())) {
16                 int data = -1;
17                 do {
18                     data = inputStream.read();
19                     if (data != -1) {
20                         System.out.print((char) data);
21                     } else {
22                         System.out.print(data);
23                     }
24                 } while (data != -1);
25                 System.out.println();
26             } else if (!file.exists()) {
27                 System.out.println("The " + file.getName() + " does not exist.");
28             } else if (!file.isFile()) {
29                 System.out.println("The " + file.getName() + " is not a file.");
30             }
31         } catch (FileNotFoundException e) {
32             e.printStackTrace();
33         } catch (IOException e1) {
34             e1.printStackTrace();
35         }
36     }
37 }

 

 

多字节读取

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileNotFoundException;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 
 7 public class IOTest02 {
 8 
 9     public static void main(String[] args) {
10         File src = new File("src.txt");
11         InputStream is = null;
12         
13         try {
14             is = new FileInputStream(src);
15             byte[] buffer = new byte[1024 * 1];                    // 1k bytes
16             int length = -1;
17             while ((length = is.read(buffer)) != -1) {
18                 String str = new String(buffer, 0, length);        // decode
19                 System.out.print(str);
20             }
21         } catch (FileNotFoundException e) {
22             e.printStackTrace();
23         } catch (IOException e) {
24             e.printStackTrace();
25         } finally {
26             try {
27                 if (is != null) {
28                     is.close();
29                     System.out.println("\n\nInputStream Closed.");
30                 }
31             } catch (IOException e) {
32                 e.printStackTrace();
33             }
34         }
35     }
36 }

 

posted @ 2018-11-22 18:09  heismk  阅读(664)  评论(0编辑  收藏  举报