Java怎样读取txt文件的内容( 二 )
2.3两者的区别
RandomAccessFile可以通过移动文件指针改变读取的位置,可以按照几种基本类型直接读取数据,可以跳过一定的字节,整体来看,文件就像一个大的二进制数组。而DataInputStream就是单纯的输入流。
3. 大量数据的处理思路:
3.1 借助ByteBuffer使用堆外内存,在不导致oom的情况且内存充足的情况下可以大量申请内存。
3.2 借助RandomAccessFile分块读取,记录读取的最后位置,处理完毕后继续读。或者多线程处理,拆分整个文件为多个大小相等的块,分入多个子线程进入线程池并发处理。
3.3 用BufferedReader和正则,匹配到特征数据后暂停,然后处理数据,然后继续读取。
■网友
如果要懂原理的话,需要深入到操作系统的文件系统部分,从拿到文件句柄开始。java读文件代码很多,百度一下吧
■网友
1、实现目标读取文件,将文件中的数据一行行的取出。
2、代码实现方式1:
通过BufferedReader的readLine()方法。/*** 功能:Java读取txt文件的内容 步骤:*1:先获得文件句柄 *2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取*3:读取到输入流后,需要读取生成字节流 *4:一行一行的输出。readline()。 *备注:需要考虑的是异常情况* * @param filePath* 文件路径* @return 将这个文件按照每一行切割成数组存放到list中。*/ public static List\u0026lt;String\u0026gt; readTxtFileIntoStringArrList(String filePath) { List\u0026lt;String\u0026gt; list = new ArrayList\u0026lt;String\u0026gt;(); try { String encoding = "GBK"; File file = new File(filePath); if (file.isFile() \u0026amp;\u0026amp; file.exists()) { // 判断文件是否存在 InputStreamReader read = new InputStreamReader( new FileInputStream(file), encoding);// 考虑到编码格式 BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { list.add(lineTxt); } bufferedReader.close(); read.close(); } else { System.out.println("找不到指定的文件"); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } return list; }
方式2
通过文件byte数组暂存文件中内容,将其转换为String数据,再按照 “回车换行” 进行分割。/** * 读取filePath的文件,将文件中的数据按照行读取到String数组中 * @param filePath 文件的路径 * @return 文件中一行一行的数据 */ public static String readToString(String filePath) { File file = new File(filePath); Long filelength = file.length(); // 获取文件长度 byte filecontent = new byte; try { FileInputStream in = new FileInputStream(file); in.read(filecontent); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String fileContentArr = new String(filecontent).split("\\r\"); return fileContentArr;// 返回文件内容,默认编码 }
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义