java讀取文件,java讀取文件夾下所有文件

本文目錄一覽:

java 讀取文件

import java.io.*;

public class ReadFile {

public static void main(String[] args) {

try {

File ff = new File(args[0]); //args[0]是你從控制台輸入的文件路徑,可以改為具體文件路徑

FileInputStream fis = new FileInputStream(ff);

int n;

byte [] buff= new byte[1000];

// 從文件讀取數據

while ((n = fis.read(buff)) != -1) {

// 寫入System.out中

System.out.write(buff, 0, n);

}

} catch (IOException e) {

System.out.println(“沒有找到文件”);

System.exit(1);

}

}

}

java中怎樣從文件中讀取數據?

分為讀字節,讀字符兩種讀法\x0d\x0a◎◎◎FileInputStream 字節輸入流讀文件◎◎◎\x0d\x0apublic class Maintest {\x0d\x0a\x0d\x0apublic static void main(String[] args) throws IOException {\x0d\x0a\x0d\x0aFile f=new File(“G:\\just for fun\\xiangwei.txt”);\x0d\x0a\x0d\x0aFileInputStream fin=new FileInputStream(f);\x0d\x0a\x0d\x0abyte[] bs=new byte[1024];\x0d\x0a\x0d\x0aint count=0;\x0d\x0awhile((count=fin.read(bs))0)\x0d\x0a{\x0d\x0a\x0d\x0aString str=new String(bs,0,count);//反覆定義新變量:每一次都 重新定義新變量,接收新讀取的數據\x0d\x0a\x0d\x0aSystem.out.println(str);//反覆輸出新變量:每一次都 輸出重新定義的新變量\x0d\x0a}\x0d\x0afin.close();\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a◎◎◎FileReader 字符輸入流讀文件◎◎◎\x0d\x0apublic class Maintest {\x0d\x0apublic static void main(String[] args) throws IOException {\x0d\x0a\x0d\x0aFile f=new File(“H:\\just for fun\\xiangwei.txt”);\x0d\x0a\x0d\x0aFileReader fre=new FileReader(f);\x0d\x0a\x0d\x0aBufferedReader bre=new BufferedReader(fre);\x0d\x0a\x0d\x0aString str=””;\x0d\x0awhile((str=bre.readLine())!=null)//●判斷最後一行不存在,為空\x0d\x0a{\x0d\x0aSystem.out.println(str);\x0d\x0a}\x0d\x0abre.close();\x0d\x0a fre.close();\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0a}

java中怎樣從一個文件中讀取文件信息

java讀取文件路徑、所佔空間大小等文件消息,主要是使用FileInputStream類來操作,示例如下:

import java.io.File;

import java.io.FileInputStream;

public class ceshi {

public static void main(String[] args) throws Exception {

java.io.File localFile = new File(“D:\\1.txt”);

FileInputStream ins = new FileInputStream(localFile);

int countLen = ins.available();

byte[] m_binArray = new byte[countLen];

ins.read(m_binArray);

ins.close();

System.out.println(localFile.getAbsoluteFile() + ”  “

+ localFile.getFreeSpace());

}

}

運行結果如下:

Java 如何讀取txt文件的內容?

java讀取txt文件內容。可以作如下理解:

首先獲得一個文件句柄。File file = new File(); file即為文件句柄。兩人之間連通電話網絡了。接下來可以開始打電話了。

通過這條線路讀取甲方的信息:new FileInputStream(file) 目前這個信息已經讀進來內存當中了。接下來需要解讀成乙方可以理解的東西

既然你使用了FileInputStream()。那麼對應的需要使用InputStreamReader()這個方法進行解讀剛才裝進來內存當中的數據

解讀完成後要輸出呀。那當然要轉換成IO可以識別的數據呀。那就需要調用字節碼讀取的方法BufferedReader()。同時使用bufferedReader()的readline()方法讀取txt文件中的每一行數據哈。

package com.campu;

 

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.Reader;

 

/**

 * @author Java團長

 * H20121012.java

 * 2017-10-29上午11:22:21

 */

public class H20121012 {

    /**

     * 功能:Java讀取txt文件的內容

     * 步驟:1:先獲得文件句柄

     * 2:獲得文件句柄當做是輸入一個字節碼流,需要對這個輸入流進行讀取

     * 3:讀取到輸入流後,需要讀取生成字節流

     * 4:一行一行的輸出。readline()。

     * 備註:需要考慮的是異常情況

     * @param filePath

     */

    public static void readTxtFile(String filePath){

        try {

                String encoding=”GBK”;

                File file=new File(filePath);

                if(file.isFile()  file.exists()){ //判斷文件是否存在

                    InputStreamReader read = new InputStreamReader(

                    new FileInputStream(file),encoding);//考慮到編碼格式

                    BufferedReader bufferedReader = new BufferedReader(read);

                    String lineTxt = null;

                    while((lineTxt = bufferedReader.readLine()) != null){

                        System.out.println(lineTxt);

                    }

                    read.close();

        }else{

            System.out.println(“找不到指定的文件”);

        }

        } catch (Exception e) {

            System.out.println(“讀取文件內容出錯”);

            e.printStackTrace();

        }

     

    }

     

    public static void main(String argv[]){

        String filePath = “L:\\Apache\\htdocs\\res\\20121012.txt”;

//      “res/”;

        readTxtFile(filePath);

    }

     

     

 

}

我有一個微信公眾號,經常會分享一些Java技術相關的乾貨文章,還有一些學習資源。

如果你需要的話,可以用微信搜索“Java團長”或者“javatuanzhang”關注。

java文件如何讀取

java讀取文件方法大全

一、多種方式讀文件內容。

1、按字節讀取文件內容

2、按字符讀取文件內容

3、按行讀取文件內容

4、隨機讀取文件內容

Java代碼

1. import java.io.BufferedReader;

2. import java.io.File;

3. import java.io.FileInputStream;

4. import java.io.FileReader;

5. import java.io.IOException;

6. import java.io.InputStream;

7. import java.io.InputStreamReader;

8. import java.io.RandomAccessFile;

9. import java.io.Reader;

10.

11. public class ReadFromFile {

12. /**

13. * 以字節為單位讀取文件,常用於讀二進制文件,如圖片、聲音、影像等文件。

14. *

15. * @param fileName

16. * 文件的名

17. */

18. public static void readFileByBytes(String fileName) {

19. File file = new File(fileName);

20. InputStream in = null;

21. try {

22. System.out.println(“以字節為單位讀取文件內容,一次讀一個字節:”);

23. // 一次讀一個字節

24. in = new FileInputStream(file);

25. int tempbyte;

26. while ((tempbyte = in.read()) != -1) {

27. System.out.write(tempbyte);

28. }

29. in.close();

30. } catch (IOException e) {

31. e.printStackTrace();

32. return;

33. }

34. try {

35. System.out.println(“以字節為單位讀取文件內容,一次讀多個字節:”);

36. // 一次讀多個字節

37. byte[] tempbytes = new byte[100];

38. int byteread = 0;

39. in = new FileInputStream(fileName);

40. ReadFromFile.showAvailableBytes(in);

41. // 讀入多個字節到字節數組中,byteread為一次讀入的字節數

42. while ((byteread = in.read(tempbytes)) != -1) {

43. System.out.write(tempbytes, 0, byteread);

44. }

45. } catch (Exception e1) {

46. e1.printStackTrace();

47. } finally {

48. if (in != null) {

49. try {

50. in.close();

51. } catch (IOException e1) {

52. }

53. }

54. }

55. }

56.

57. /**

58. * 以字符為單位讀取文件,常用於讀文本,數字等類型的文件

59. *

60. * @param fileName

61. * 文件名

62. */

63. public static void readFileByChars(String fileName) {

64. File file = new File(fileName);

65. Reader reader = null;

66. try {

67. System.out.println(“以字符為單位讀取文件內容,一次讀一個字節:”);

68. // 一次讀一個字符

69. reader = new InputStreamReader(new FileInputStream(file));

70. int tempchar;

71. while ((tempchar = reader.read()) != -1) {

72. // 對於windows下,\r\n這兩個字符在一起時,表示一個換行。

73. // 但如果這兩個字符分開顯示時,會換兩次行。

74. // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。

75. if (((char) tempchar) != ‘\r’) {

76. System.out.print((char) tempchar);

77. }

78. }

79. reader.close();

80. } catch (Exception e) {

81. e.printStackTrace();

82. }

83. try {

84. System.out.println(“以字符為單位讀取文件內容,一次讀多個字節:”);

85. // 一次讀多個字符

86. char[] tempchars = new char[30];

87. int charread = 0;

88. reader = new InputStreamReader(new FileInputStream(fileName));

89. // 讀入多個字符到字符數組中,charread為一次讀取字符數

90. while ((charread = reader.read(tempchars)) != -1) {

91. // 同樣屏蔽掉\r不顯示

92. if ((charread == tempchars.length)

93. (tempchars[tempchars.length – 1] != ‘\r’)) {

94. System.out.print(tempchars);

95. } else {

96. for (int i = 0; i charread; i++) {

97. if (tempchars[i] == ‘\r’) {

98. continue;

99. } else {

100. System.out.print(tempchars[i]);

101. }

102. }

103. }

104. }

105.

106. } catch (Exception e1) {

107. e1.printStackTrace();

108. } finally {

109. if (reader != null) {

110. try {

111. reader.close();

112. } catch (IOException e1) {

113. }

114. }

115. }

116. }

117.

118. /**

119. * 以行為單位讀取文件,常用於讀面向行的格式化文件

120. *

121. * @param fileName

122. * 文件名

123. */

124. public static void readFileByLines(String fileName) {

125. File file = new File(fileName);

126. BufferedReader reader = null;

127. try {

128. System.out.println(“以行為單位讀取文件內容,一次讀一整行:”);

129. reader = new BufferedReader(new FileReader(file));

130. String tempString = null;

131. int line = 1;

132. // 一次讀入一行,直到讀入null為文件結束

133. while ((tempString = reader.readLine()) != null) {

134. // 顯示行號

135. System.out.println(“line ” + line + “: ” + tempString);

136. line++;

137. }

138. reader.close();

139. } catch (IOException e) {

140. e.printStackTrace();

141. } finally {

142. if (reader != null) {

143. try {

144. reader.close();

145. } catch (IOException e1) {

146. }

147. }

148. }

149. }

150.

151. /**

152. * 隨機讀取文件內容

153. *

154. * @param fileName

155. * 文件名

156. */

157. public static void readFileByRandomAccess(String fileName) {

158. RandomAccessFile randomFile = null;

159. try {

160. System.out.println(“隨機讀取一段文件內容:”);

161. // 打開一個隨機訪問文件流,按只讀方式

162. randomFile = new RandomAccessFile(fileName, “r”);

163. // 文件長度,字節數

164. long fileLength = randomFile.length();

165. // 讀文件的起始位置

166. int beginIndex = (fileLength 4) ? 4 : 0;

167. // 將讀文件的開始位置移到beginIndex位置。

168. randomFile.seek(beginIndex);

169. byte[] bytes = new byte[10];

170. int byteread = 0;

171. // 一次讀10個字節,如果文件內容不足10個字節,則讀剩下的字節。

172. // 將一次讀取的字節數賦給byteread

173. while ((byteread = randomFile.read(bytes)) != -1) {

174. System.out.write(bytes, 0, byteread);

175. }

176. } catch (IOException e) {

177. e.printStackTrace();

178. } finally {

179. if (randomFile != null) {

180. try {

181. randomFile.close();

182. } catch (IOException e1) {

183. }

184. }

185. }

186. }

187.

188. /**

189. * 顯示輸入流中還剩的字節數

190. *

191. * @param in

192. */

193. private static void showAvailableBytes(InputStream in) {

194. try {

195. System.out.println(“當前字節輸入流中的字節數為:” + in.available());

196. } catch (IOException e) {

197. e.printStackTrace();

198. }

199. }

200.

201. public static void main(String[] args) {

202. String fileName = “C:/temp/newTemp.txt”;

203. ReadFromFile.readFileByBytes(fileName);

204. ReadFromFile.readFileByChars(fileName);

205. ReadFromFile.readFileByLines(fileName);

206. ReadFromFile.readFileByRandomAccess(fileName);

207. }

208. }

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

1. import java.io.FileWriter;

2. import java.io.IOException;

3. import java.io.RandomAccessFile;

4.

5. /**

6. * 將內容追加到文件尾部

7. */

8. public class AppendToFile {

9.

10. /**

11. * A方法追加文件:使用RandomAccessFile

12. * @param fileName 文件名

13. * @param content 追加的內容

14. */

15. public static void appendMethodA(String fileName, String content) {

16. try {

17. // 打開一個隨機訪問文件流,按讀寫方式

18. RandomAccessFile randomFile = new RandomAccessFile(fileName, “rw”);

19. // 文件長度,字節數

20. long fileLength = randomFile.length();

21. //將寫文件指針移到文件尾。

22. randomFile.seek(fileLength);

23. randomFile.writeBytes(content);

24. randomFile.close();

25. } catch (IOException e) {

26. e.printStackTrace();

27. }

28. }

29.

30. /**

31. * B方法追加文件:使用FileWriter

32. * @param fileName

33. * @param content

34. */

35. public static void appendMethodB(String fileName, String content) {

36. try {

37. //打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件

38. FileWriter writer = new FileWriter(fileName, true);

39. writer.write(content);

40. writer.close();

41. } catch (IOException e) {

42. e.printStackTrace();

43. }

44. }

45.

46. public static void main(String[] args) {

47. String fileName = “C:/temp/newTemp.txt”;

48. String content = “new append!”;

49. //按方法A追加文件

50. AppendToFile.appendMethodA(fileName, content);

51. AppendToFile.appendMethodA(fileName, “append end. \n”);

52. //顯示文件內容

53. ReadFromFile.readFileByLines(fileName);

54. //按方法B追加文件

55. AppendToFile.appendMethodB(fileName, content);

56. AppendToFile.appendMethodB(fileName, “append end. \n”);

57. //顯示文件內容

58. ReadFromFile.readFileByLines(fileName);

59. }

60. }

Java讀取文件的幾種方法

方式一:採用ServletContext讀取,讀取配置文件的realpath,然後通過文件流讀取出來。因為是用ServletContext讀取文件路徑,所以配置文件可以放入在web-info的classes目錄中,也可以在應用層級及web-info的目錄中。文件存放位置具體在eclipse工程中的表現是:可以放在src下面,也可放在web-info及webroot下面等。因為是讀取出路徑後,用文件流進行讀取的,所以可以讀取任意的配置文件包括xml和properties。缺點:不能在servlet外面應用讀取配置信息。

方式二:採用ResourceBundle類讀取配置信息,

優點是:可以以完全限定類名的方式加載資源後,直接的讀取出來,且可以在非Web應用中讀取資源文件。缺點:只能加載類classes下面的資源文件且只能讀取.properties文件。

方式三:採用ClassLoader方式進行讀取配置信息

優點是:可以在非Web應用中讀取配置資源信息,可以讀取任意的資源文件信息

缺點:只能加載類classes下面的資源文件。

方法4 getResouceAsStream

XmlParserHandler.class.getResourceAsStream 與classloader不同

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285845.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 16:06
下一篇 2024-12-22 16:06

相關推薦

發表回復

登錄後才能評論