java读取文件方法大全

合集下载

java程序读取服务器端数据文件的方法

java程序读取服务器端数据文件的方法

java程序读取服务器端数据文件的方法
1. 使用Java IO流读取服务器端文件:
使用Java IO流可以读取服务器端文件,具体步骤如下:
(1)使用URL类的openStream()方法获取URL对象的输入流;
(2)使用BufferedReader类的readLine()方法读取文件内容;
(3)使用String类的split()方法将读取的内容按照指定的分隔符分割为字符串数组;
(4)使用Arrays类的toString()方法将字符串数组转换为字符串;
(5)使用String类的replace()方法替换掉特殊字符;
(6)使用String类的split()方法将字符串按照指定的分隔符分割为字符串数组;
(7)使用for循环遍历字符串数组,将每个字符串元素添加到ArrayList中;
(8)将ArrayList转换为字符串数组,并返回。

2. 使用Java NIO读取服务器端文件:
使用Java NIO可以读取服务器端文件,具体步骤如下:
(1)使用Paths类的get()方法获取服务器端文件的路径;
(2)使用Files类的readAllBytes()方法读取文件的所有字节;
(3)使用String类的split()方法将读取的内容按照指定的分隔符分割为字符串数组;
(4)使用for循环遍历字符串数组,将每个字符串元素添加到ArrayList中;
(5)将ArrayList转换为字符串数组,并返回。

Java读取TXT文件的多种方式

Java读取TXT文件的多种方式

Java读取TXT文件的多种方式按行读取TXT文件package zc;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class readLine {public static void main(String[] args) {// TODO Auto-generated method stubFile file = new File("C:/zc.txt");BufferedReader reader = null;String tempString = null;int line =1;try {System.out.println("以行为单位读取文件内容,一次读一整行:");reader = new BufferedReader(new FileReader(file));while ((tempString = reader.readLine()) != null) {System.out.println("Line"+ line + ":" +tempString);line ++ ;}reader.close();} catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{if(reader != null){try {reader.close();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}}}}按字节读取TXT文件package zc;import java.io.File;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;import java.io.InputStream;public class readerFileByChars {public static void main(String[] args) {// TODO Auto-generated method stubFile file = new File("c:/zc.txt");InputStream in = null;byte[] tempByte = new byte[1024];int byteread = 0;try {System.out.println("以字节为单位读取文件内容,一次读多个字节:");in = new FileInputStream(file);while ((byteread = in.read(tempByte)) != -1 ) {System.out.write(tempByte, 0, byteread);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if (in != null) {try {in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} }}。

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法

Java读取Excel文件的几种方法最近单位有个项目需要读取excel文件的内容,特别对java读取excel文件的方法做了一点学习,也为了其他人以后能更简单地开发,少走弯路,特写此文,以下程序经过了我的测试,可以保证程序可用,如果你照搬都不行,可能是你的环境有问题。

读取excel文件的常用开源免费方法有以下几种:JDBC-ODBC Excel Driverjxl.jarjcom.jarpoi.jar下面分别对这几种方法分别进行探讨1、JDBC-ODBC Excel Driver这种方法是将excel看成是数据库进行操作,使用SQL Select语句即可查询excel表格。

优点是:不需要第三方的jar包。

如下表样首先在控制面板进行数据源ODBC登记具体方法如下:下面就是代码了。

package xuzhe;import java.io.*;import java.sql.*;//java xuzhe.ExcelJDBCpublic class ExcelJDBC {public static void main(String[] args) throws SQLException{Connection con = null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con = DriverManager.getConnection( "jdbc:odbc:ExcelJDBC" );Statement st = con.createStatement();ResultSet rs = st.executeQuery( "Select * from [Sheet1$]" );ResultSetMetaData rsmd = rs.getMetaData();int numberOfColumns = rsmd.getColumnCount();System.out.println ("表格列数"+numberOfColumns );System.out.println( rsmd.getColumnName(1)+ "," +rsmd.getColumnName(2) + "," + rsmd.getColumnName(3));while (rs.next()) {for (int i = 1; i <= numberOfColumns; i++) {if (i > 1) System.out.print(", ");String columnValue = rs.getString(i);System.out.print(columnValue);}System.out.println("");}rs.close();st.close();}catch(Exception ex) {System.err.print("Exception: ");System.err.println(ex.getMessage());}finally {con.close();}}}执行结果如下:2、jxl.jarjxl.jar为开源代码,任何运行java虚拟机的操作系统都能使用这个jar包操作excel表格。

java 根据路径获取文件方法

java 根据路径获取文件方法

java 根据路径获取文件方法Java是一种广泛应用于软件开发的高级编程语言。

在Java中,我们经常需要根据路径获取文件。

本文将介绍如何使用Java来实现这一功能,并提供一步一步的指导。

第一步:导入相关的Java类库要使用Java来获取文件,我们需要导入相关的Java类库。

在这个场景下,我们需要导入java.io类库中的File类。

在Java中,File类提供了一些方法来操作文件和目录。

要导入File类,我们可以在Java源文件的开头添加以下代码:javaimport java.io.File;第二步:创建File对象在Java中,要获取文件,我们需要先创建一个File对象。

File对象代表文件系统中的一个文件或目录。

我们可以使用其构造函数来创建一个File 对象,构造函数可以接受文件路径作为参数。

以下是一个创建File对象的示例代码:javaString path = "C:\\myFolder\\myFile.txt";File file = new File(path);在上面的示例中,我们创建了一个名为file的File对象,该对象代表了路径为C:\myFolder\myFile.txt的文件。

请注意,在Java中,文件路径使用双反斜杠(\)来表示文件分隔符。

第三步:检查文件是否存在在创建File对象后,我们可以使用其exists()方法来检查文件是否存在。

exists()方法返回一个布尔值,如果文件存在,则返回true,否则返回false。

以下是一个检查文件是否存在的示例代码:javaif (file.exists()) {System.out.println("文件存在");} else {System.out.println("文件不存在");}第四步:获取文件的绝对路径要获取文件的绝对路径,我们可以使用File对象的getAbsolutePath()方法。

java 读取外部配置文件的方法

java 读取外部配置文件的方法

java 读取外部配置文件的方法Java是一种面向对象的编程语言,具有广泛的应用领域。

在Java开发中,有时需要读取外部配置文件来获取一些参数或配置信息。

下面将介绍一些常见的Java读取外部配置文件的方法。

1. 使用Java的Properties类:Java的Properties类是处理属性文件的工具类,非常适合读取外部配置文件。

以下是一个简单的示例代码:```javaimport java.io.FileInputStream;import java.io.IOException;import java.util.Properties;public class ReadConfigFile {public static void main(String[] args) {Properties prop = new Properties();try {prop.load(new FileInputStream("config.properties"));String value1 = prop.getProperty("key1");String value2 = prop.getProperty("key2");// 使用读取到的配置信息进行后续操作} catch (IOException e) {e.printStackTrace();}}}```通过创建Properties对象并使用load()方法来读取配置文件,可以通过getProperty()方法获取配置文件中的具体键值对。

2. 使用Java的ResourceBundle类:ResourceBundle类提供了一种读取以属性键值对形式存储的配置文件的方式。

以下是一个简单的示例代码:```javaimport java.util.ResourceBundle;public class ReadConfigFile {public static void main(String[] args) {ResourceBundle bundle = ResourceBundle.getBundle("config");String value1 = bundle.getString("key1");String value2 = bundle.getString("key2");// 使用读取到的配置信息进行后续操作}}```使用getBundle()方法加载配置文件,通过getString()方法获取具体的配置信息。

Java程序读取配置文件的几种方法

Java程序读取配置文件的几种方法

Java程序读取配置⽂件的⼏种⽅法Java 开发中,需要将⼀些易变的配置参数放置再 XML 配置⽂件或者 properties 配置⽂件中。

然⽽ XML 配置⽂件需要通过 DOM 或 SAX ⽅式解析,⽽读取 properties 配置⽂件就⽐较容易。

1. 读取properties⽂件的⽅法1. 使⽤类加载器ClassLoder类读取配置⽂件InputStream in = MainClass.class.getClassLoader().getResourceAsStream("com/demo/config.properties");MainClass.class是主类的反射对象,因为getClassLoader()是class类的对象⽅法。

在类加载器中调⽤getResourceAsStream()时,采⽤相对路径,起始位置在src⽬录,路径开头没有“/”。

InputStream in = (new MainClass()).getClass().getClassLoader().getResourceAsStream("com/demo/config.properties");因为getClass()是object类的对象⽅法,所有在主类调⽤时要将主类实体化,即new MainClass()。

同理,相对路径起始位置同上。

2. ⽤class对象读取配置⽂件之所以Class对象也可以加载资源⽂件是因为Class类封装的getResourceAsStream⽅法的源码中调⽤了类加载器。

InputStream in = MainClass.class.getResourceAsStream(“/com/demo/config.properties”);同样MainClass.class是主类的反射对象。

在class对象中调⽤getResourceAsStream()时,采⽤绝对路径,起始位置在类路径(bin⽬录),因此路径要以“/”开头。

java读取txt文件

java读取txt⽂件⼀、读取txt⽂件。

1、步骤 :①、创建⽂件句柄File file = new File(filePath);②、将⽂件内容读取到内存中new FileInputStream(file)③、封装数据 InputStreamReaderInputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding)④、读取数据BufferedReader bufferedReader = new BufferedReader(read); 每⾏数据bufferedReader.readLine()2、场景: txt⽂件内容:123456...读取每⾏内容, 并将每⾏内容⽤ , 拼接成 123,456public class ReadTxt {public static void main(String[] args) {String filePath = "/Users/xupengwei/Downloads/test.txt";readTxtFile(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;StringBuffer sb = new StringBuffer();while ((lineTxt = bufferedReader.readLine()) != null) {sb.append(lineTxt);sb.append(",");}System.out.println(sb.toString());read.close();} else {System.out.println("找不到指定的⽂件");}} catch (Exception e) {System.out.println("读取⽂件内容出错");e.printStackTrace();}}}⼆、拓展...场景 : 正则匹配。

Java读取文件内容的六种方法

Java读取⽂件内容的六种⽅法1.Scanner第⼀种⽅式是Scanner,从JDK1.5开始提供的API,特点是可以按⾏读取、按分割符去读取⽂件数据,既可以读取String类型,也可以读取Int类型、Long类型等基础数据类型的数据。

@Testvoid testReadFile1() throws IOException {//⽂件内容:Hello World|Hello ZimugString fileName = "D:\\data\\test\\newFile4.txt";try (Scanner sc = new Scanner(new FileReader(fileName))) {while (sc.hasNextLine()) { //按⾏读取字符串String line = sc.nextLine();System.out.println(line);}}try (Scanner sc = new Scanner(new FileReader(fileName))) {eDelimiter("\\|"); //分隔符while (sc.hasNext()) { //按分隔符读取字符串String str = sc.next();System.out.println(str);}}//sc.hasNextInt() 、hasNextFloat() 、基础数据类型等等等等。

//⽂件内容:1|2fileName = "D:\\data\\test\\newFile5.txt";try (Scanner sc = new Scanner(new FileReader(fileName))) {eDelimiter("\\|"); //分隔符while (sc.hasNextInt()) { //按分隔符读取Intint intValue = sc.nextInt();System.out.println(intValue);}}}上⾯的⽅法输出结果如下:Hello World|Hello ZimugHello WorldHello Zimug122.Files.lines (Java 8)如果你是需要按⾏去处理数据⽂件的内容,这种⽅式是我推荐⼤家去使⽤的⼀种⽅式,代码简洁,使⽤java 8的Stream流将⽂件读取与⽂件处理有机融合。

java读取文件内容的方法

java读取文件内容的方法在Java编程中,读取文件是一个常见的操作,可以利用Java提供的各种类和方法来实现。

下面介绍几种常用的方法:1. 使用BufferedReader类读取文件内容:```try {FileReader fileReader = new FileReader("文件路径");BufferedReader bufferedReader = new BufferedReader(fileReader);String line;while ((line = bufferedReader.readLine()) != null) {// 处理每一行的内容System.out.println(line);}bufferedReader.close();} catch (IOException e) {e.printStackTrace();}```以上代码首先打开一个文件,然后使用BufferedReader类逐行读取文件内容,当读取到的行为null时表示已经读取完整个文件。

2. 使用Scanner类读取文件内容:```try {File file = new File("文件路径");Scanner scanner = new Scanner(file);while (scanner.hasNextLine()) {String line = scanner.nextLine();// 处理每一行的内容System.out.println(line);}scanner.close();} catch (FileNotFoundException e) {e.printStackTrace();}```上述代码利用Scanner类可以方便地按行读取文件内容,同样当读取到的行为null时表示已经读取完整个文件。

3. 使用Files类读取文件内容:```try {List<String> lines = Files.readAllLines(Paths.get("文件路径"));for (String line : lines) {// 处理每一行的内容System.out.println(line);}} catch (IOException e) {e.printStackTrace();}```上述代码使用Files类的readAllLines方法一次性读取文件的所有行,返回一个包含所有行内容的列表。

java读取大文件超大文件的几种方法

java读取⼤⽂件超⼤⽂件的⼏种⽅法java 读取⼀个巨⼤的⽂本⽂件既能保证内存不溢出⼜能保证性能import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;public class ReadBig {public static String fff = "C:\\mq\\read\\from.xml";public static void main1(String[] args) throws Exception {final int BUFFER_SIZE = 0x300000;// 缓冲区⼤⼩为3MFile f = new File(fff);/**** map(FileChannel.MapMode mode,long position, long size)** mode - 根据是按只读、读取/写⼊或专⽤(写⼊时拷贝)来映射⽂件,分别为 FileChannel.MapMode 类中所定义的* READ_ONLY、READ_WRITE 或 PRIVATE 之⼀** position - ⽂件中的位置,映射区域从此位置开始;必须为⾮负数** size - 要映射的区域⼤⼩;必须为⾮负数且不⼤于 Integer.MAX_VALUE** 所以若想读取⽂件后半部分内容,如例⼦所写;若想读取⽂本后1/8内容,需要这样写map(FileChannel.MapMode.READ_ONLY, * f.length()*7/8,f.length()/8)** 想读取⽂件所有内容,需要这样写map(FileChannel.MapMode.READ_ONLY, 0,f.length())**/MappedByteBuffer inputBuffer = new RandomAccessFile(f, "r").getChannel().map(FileChannel.MapMode.READ_ONLY,f.length() / 2, f.length() / 2);byte[] dst = new byte[BUFFER_SIZE];// 每次读出3M的内容long start = System.currentTimeMillis();for (int offset = 0; offset < inputBuffer.capacity(); offset += BUFFER_SIZE) {if (inputBuffer.capacity() - offset >= BUFFER_SIZE) {for (int i = 0; i < BUFFER_SIZE; i++)dst[i] = inputBuffer.get(offset + i);} else {for (int i = 0; i < inputBuffer.capacity() - offset; i++)dst[i] = inputBuffer.get(offset + i);}int length = (inputBuffer.capacity() % BUFFER_SIZE == 0) ? BUFFER_SIZE: inputBuffer.capacity() % BUFFER_SIZE;System.out.println(new String(dst, 0, length));// new// String(dst,0,length)这样可以取出缓存保存的字符串,可以对其进⾏操作}long end = System.currentTimeMillis();System.out.println("读取⽂件⽂件⼀半内容花费:" + (end - start) + "毫秒");}public static void main2(String[] args) throws Exception {int bufSize = 1024;byte[] bs = new byte[bufSize];ByteBuffer byteBuf = ByteBuffer.allocate(1024);FileChannel channel = new RandomAccessFile(fff, "r").getChannel();while (channel.read(byteBuf) != -1) {int size = byteBuf.position();byteBuf.rewind();byteBuf.get(bs); // 把⽂件当字符串处理,直接打印做为⼀个例⼦。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

\一、多种方式读文件内容。

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 fileName16. * 文件的名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 fileName61. * 文件名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 fileName122. * 文件名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 fileName155. * 文件名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. // 将一次读取的字节数赋给byteread173. 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 in192. */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.}import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.io.Reader;public class ReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

相关文档
最新文档