一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 讀取文件方法的總結

java 讀取文件方法的總結

2020-12-16 13:22comeonbabye Java教程

這篇文章主要介紹了java 讀取文件方法的總結的相關資料,這里提供文件讀取5種方法并附實例,需要的朋友可以參考下

java 讀取文件方法的總結

1、按字節讀取 文件 內容
2、按字符讀取 文件 內容
3、按行讀取 文件 內容
4、隨機讀取 文件 內容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
public class ReadFromFile {
  /**
   * 以字節為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。
   */
  public static void readFileByBytes(String fileName) {
    File file = new File(fileName);
    InputStream in = null;
    try {
      System.out.println("以字節為單位讀取文件內容,一次讀一個字節:");
      // 一次讀一個字節
      in = new FileInputStream(file);
      int tempbyte;
      while ((tempbyte = in.read()) != -1) {
        System.out.write(tempbyte);
      }
      in.close();
    } catch (IOException e) {
      e.printStackTrace();
      return;
    }
    try {
      System.out.println("以字節為單位讀取文件內容,一次讀多個字節:");
      // 一次讀多個字節
      byte[] tempbytes = new byte[100];
      int byteread = 0;
      in = new FileInputStream(fileName);
      ReadFromFile.showAvailableBytes(in);
      // 讀入多個字節到字節數組中,byteread為一次讀入的字節數
      while ((byteread = in.read(tempbytes)) != -1) {
        System.out.write(tempbytes, 0, byteread);
      }
    } catch (Exception e1) {
      e1.printStackTrace();
    } finally {
      if (in != null) {
        try {
          in.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 以字符為單位讀取文件,常用于讀文本,數字等類型的文件
   */
  public static void readFileByChars(String fileName) {
    File file = new File(fileName);
    Reader reader = null;
    try {
      System.out.println("以字符為單位讀取文件內容,一次讀一個字節:");
      // 一次讀一個字符
      reader = new InputStreamReader(new FileInputStream(file));
      int tempchar;
      while ((tempchar = reader.read()) != -1) {
        // 對于windows下,\r\n這兩個字符在一起時,表示一個換行。
        // 但如果這兩個字符分開顯示時,會換兩次行。
        // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
        if (((char) tempchar) != '\r') {
          System.out.print((char) tempchar);
        }
      }
      reader.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    try {
      System.out.println("以字符為單位讀取文件內容,一次讀多個字節:");
      // 一次讀多個字符
      char[] tempchars = new char[30];
      int charread = 0;
      reader = new InputStreamReader(new FileInputStream(fileName));
      // 讀入多個字符到字符數組中,charread為一次讀取字符數
      while ((charread = reader.read(tempchars)) != -1) {
        // 同樣屏蔽掉\r不顯示
        if ((charread == tempchars.length)
            && (tempchars[tempchars.length - 1] != '\r')) {
          System.out.print(tempchars);
        } else {
          for (int i = 0; i < charread; i++) {
            if (tempchars[i] == '\r') {
              continue;
            } else {
              System.out.print(tempchars[i]);
            }
          }
        }
      }
 
    } catch (Exception e1) {
      e1.printStackTrace();
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 以行為單位讀取文件,常用于讀面向行的格式化文件
   */
  public static void readFileByLines(String fileName) {
    File file = new File(fileName);
    BufferedReader reader = null;
    try {
      System.out.println("以行為單位讀取文件內容,一次讀一整行:");
      reader = new BufferedReader(new FileReader(file));
      String tempString = null;
      int line = 1;
      // 一次讀入一行,直到讀入null為文件結束
      while ((tempString = reader.readLine()) != null) {
        // 顯示行號
        System.out.println("line " + line + ": " + tempString);
        line++;
      }
      reader.close();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (reader != null) {
        try {
          reader.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 隨機讀取文件內容
   */
  public static void readFileByRandomAccess(String fileName) {
    RandomAccessFile randomFile = null;
    try {
      System.out.println("隨機讀取一段文件內容:");
      // 打開一個隨機訪問文件流,按只讀方式
      randomFile = new RandomAccessFile(fileName, "r");
      // 文件長度,字節數
      long fileLength = randomFile.length();
      // 讀文件的起始位置
      int beginIndex = (fileLength > 4) ? 4 : 0;
      // 將讀文件的開始位置移到beginIndex位置。
      randomFile.seek(beginIndex);
      byte[] bytes = new byte[10];
      int byteread = 0;
      // 一次讀10個字節,如果文件內容不足10個字節,則讀剩下的字節。
      // 將一次讀取的字節數賦給byteread
      while ((byteread = randomFile.read(bytes)) != -1) {
        System.out.write(bytes, 0, byteread);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if (randomFile != null) {
        try {
          randomFile.close();
        } catch (IOException e1) {
        }
      }
    }
  }
 
  /**
   * 顯示輸入流中還剩的字節數
   */
  private static void showAvailableBytes(InputStream in) {
    try {
      System.out.println("當前字節輸入流中的字節數為:" + in.available());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  public static void main(String[] args) {
    String fileName = "C:/temp/newTemp.txt";
    ReadFromFile.readFileByBytes(fileName);
    ReadFromFile.readFileByChars(fileName);
    ReadFromFile.readFileByLines(fileName);
    ReadFromFile.readFileByRandomAccess(fileName);
  }
}

 5、將內容追加到文件 尾部

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class AppendToFile {
  /**
   * A方法追加文件:使用RandomAccessFile
   */
  public static void appendMethodA(String fileName, String content) {
    try {
      // 打開一個隨機訪問文件流,按讀寫方式
      RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
      // 文件長度,字節數
      long fileLength = randomFile.length();
      //將寫文件指針移到文件尾。
      randomFile.seek(fileLength);
      randomFile.writeBytes(content);
      randomFile.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  /**
   * B方法追加文件:使用FileWriter
   */
  public static void appendMethodB(String fileName, String content) {
    try {
      //打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件
      FileWriter writer = new FileWriter(fileName, true);
      writer.write(content);
      writer.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
 
  public static void main(String[] args) {
    String fileName = "C:/temp/newTemp.txt";
    String content = "new append!";
    //按方法A追加文件
    AppendToFile.appendMethodA(fileName, content);
    AppendToFile.appendMethodA(fileName, "append end. \n");
    //顯示文件內容
    ReadFromFile.readFileByLines(fileName);
    //按方法B追加文件
    AppendToFile.appendMethodB(fileName, content);
    AppendToFile.appendMethodB(fileName, "append end. \n");
    //顯示文件內容
    ReadFromFile.readFileByLines(fileName);
  }
}

以上就是java 讀取文件的方法總結,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://comeonbabye.iteye.com/blog/1243428

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产夜趣福利第一视频 | 国产精品色爱综合网 | 百合女女师生play黄肉黄 | 国产一区二区在线观看美女 | 91制片厂果冻传媒首页 | 婷婷九月 | 草草影院在线 | 色欧美亚洲 | 亚洲国产精品综合久久网络 | 欧美精品v日韩精品v国产精品 | 免费jizz在在线播放国产 | 五月丁香啪啪. | jk制服白丝超短裙流白浆 | 含羞草传媒每天免费一次破解 | 色综合久久综合网欧美综合网 | 办公室大战秘书呻吟 | 亚欧有色在线观看免费版高清 | 亚洲精品第二页 | 冰漪丰满大乳人体图片欣赏 | 国产3级在线 | 亚洲第一男人天堂 | 网友自拍偷拍 | 久久夜色噜噜噜亚洲AV0000 | 国产欧美日韩综合二区三区 | 俄罗斯13一14处出血视频在线 | 青青草原免费在线视频 | 国产主播福利在线观看 | 男人都懂www深夜免费网站 | 91精品国产品国语在线不卡 | 免费观看一级特黄三大片视频 | 国产一区二区精品久久 | 欧美一区二区福利视频 | 国产特级 | 99视频有精品视频免费观看 | 国产成人在线播放 | 玩50岁四川熟女大白屁股直播 | 国产精品一区牛牛影视 | 国产小视频网站 | 久久久黄色片 | 日韩精品欧美 | 成人性生交大片免费看软件 |