1. import java.io.FileInputStream;
  2.  
  3. /**
  4. * 使用FileInputStream读取文件
  5. */
  6. public class FileRead {
  7. /**
  8. * @param args
  9. */
  10. public static void main(String[] args) {
  11. // 读取文件操作
  12.  
  13. // 1.通过 fis.read()方法读取,一个字节一个字节读取,对数据进行循环遍历
  14. // ReadFileToint();
  15. // 2.通过fis.read(data,0,length)方法读取。把数据一次全部读到data字节数组里面
  16. ReadFile();
  17. }
  18.  
  19. public static void ReadFileToint() {
  20. // 声明流对象
  21. FileInputStream fis = null;
  22. try {
  23. // 创建流对象
  24. fis = new FileInputStream("d:\\test\\a.txt");
  25. // 读取数据,并将读取到的数据存储到数组中
  26. byte[] data = new byte[1024]; // 数据存储的数组
  27. int i = 0; // 当前下标
  28. // 读取流中的第一个字节数据
  29. int n = fis.read();
  30. // 依次读取后续的数据
  31. while (n != -1) { // 未到达流的末尾
  32. // 将有效数据存储到数组中
  33. data[i] = (byte) n;
  34. // 下标增加
  35. i++;
  36. // 读取下一个字节的数据
  37. n = fis.read();
  38. }
  39.  
  40. // 解析数据
  41. String s = new String(data, 0, i);
  42. // 输出字符串
  43. System.out.println(s);
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. } finally {
  47. try {
  48. // 关闭流,释放资源
  49. fis.close();
  50. } catch (Exception e) {
  51. }
  52. }
  53. }
  54.  
  55. public static void ReadFile() {
  56. // 声明流对象
  57. FileInputStream fis = null;
  58. try {
  59. // 创建流对象
  60. fis = new FileInputStream("d:\\test\\a.txt");
  61. // 读取数据,并将读取到的数据存储到数组中
  62. byte[] data = new byte[1024]; // 数据存储的数组
  63. int i = fis.read(data);
  64.  
  65. // 解析数据
  66. String s = new String(data, 0, i);
  67. String[] ssStrings = s.split("\r\n");
  68. for (String b : ssStrings) {
  69. System.out.println(b.replace('|', ' '));
  70. }
  71. // 输出字符串
  72. System.out.println(s);
  73.  
  74. /*
  75. * 其实懂正则表达式的应该已经发现了,是的,“.”是正则表达式的元字符,匹配除换行符以外的任意字符,所以replaceAll、
  76. * replaceFirst才出现了这样的结果。
  77. *
  78. * 而replace没有用到正则表达式,但会把所有“.”替换掉,很多人可能会误解replace是替换单个,而replaceAll是替换全部
  79. * ,其实这是错的(我以前也是这么想的- -)。replace只是没有用到正则表达式,但会替换所有匹配的字符串。
  80. * 到这里一些不懂正则表达式的小伙伴可能就要喊坑爹了
  81. * ,“那我不想用正则表达式去替换第一个字符串肿么办?”其实也很简单,只要将元字符串转义就行了
  82. * 。s.replaceFirst("\\.", "#")
  83. */
  84.  
  85. /*
  86. * 这里给个会被正则表达式识别的字符列表: .匹配除换行符以外的任意字符 ^匹配字符串的开始 $匹配字符串的结束* 重复零次或更多次
  87. * +重复一次或更多次 ?重复零次或一次
  88. */
  89. String ss = "my.test.txt";
  90. String[] myStrings = ss.split("\\.", 2);
  91. for (String b : myStrings) {
  92. System.out.println(b);
  93. }
  94. System.out.println(ss.replace(".", "#"));
  95. System.out.println(ss.replaceAll(".", "#"));
  96. System.out.println(ss.replaceFirst(".", "#"));
  97. } catch (Exception e) {
  98. e.printStackTrace();
  99. } finally {
  100. try {
  101. // 关闭流,释放资源
  102. fis.close();
  103. } catch (Exception e) {
  104. }
  105. }
  106. }
  107. }

  

java读取文件的基本操作的更多相关文章

  1. [Java]读取文件方法大全(转)

    [Java]读取文件方法大全   1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**     ...

  2. Java 读取文件的内容

    Java 读取文件的内容 1) CLASS_NAME: 换成自己真实的类名 2) /page/test.json: 换成自己真实的page 3) FileUtils: 来自于org.apache.co ...

  3. Java读取文件-BufferedReader/FileReader/InputStreamReader/FileInputStream的关系和区别

    一.Java读取和存储文件数据流 Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程   这里面涉及到两个类:InputStreamReader和OutputStreamWriter ...

  4. 使用java读取文件夹中文件的行数

    使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...

  5. Java读取文件的几种方式

    package com.mesopotamia.test; import java.io.BufferedReader; import java.io.ByteArrayInputStream; im ...

  6. java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)

    1.实现目标 读取文件,将文件中的数据一行行的取出. 2.代码实现 1).方式1: 通过BufferedReader的readLine()方法. /** * 功能:Java读取txt文件的内容 步骤: ...

  7. Java 读取文件到字符串

    Java的io操作比较复杂 package cn.outofmemory.util; import java.io.BufferedReader; import java.io.FileInputSt ...

  8. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  9. Java读取文件方法和给文件追加内容

    本文转载自:http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文 ...

随机推荐

  1. Java基础面试题:String 和StringBuffer的区别

    package com.swift; import java.util.Date; public class Getclass_Test extends Date { public static vo ...

  2. Sum All Primes-freecodecamp算法题目

    Sum All Primes 1.要求 求小于等于给定数值的质数之和. 只有 1 和它本身两个约数的数叫质数.例如,2 是质数,因为它只能被 1 和 2 整除.1 不是质数,因为它只能被自身整除. 2 ...

  3. 牛客小白月赛5 D 阶乘(factorial) 【前缀】

    链接:https://www.nowcoder.com/acm/contest/135/D 题目描述 输入描述: 输入数据共一行,一个正整数n,意义如“问题描述”. 输出描述: 输出一行描述答案: 一 ...

  4. 认识mysql(4)

    今日是MySQL的第四篇,难度会稍微加大,加油! 开始吧! 1.外键(foreign  key) 1.定义:让当前表字段的值在另一个表的范围内选择 2.语法: foreign key(参考字段名) r ...

  5. 关于mybatis callSettersOnNulls 配置

    今天做了一件坑了自己的事情,为此浪费了好多时间... 在mybatis的设置中,看到了这样的一行设置.出于程序员的好奇,去搜索了一下,这条设置是干什么的. <setting name=" ...

  6. linux普通文件权限和系统目录权限的实践及结论

    测试结论:linux普通文件的读.写.执行权限说明 1.可读r:表示具有读取\阅读文件内容的权限 2.可写w:表示具有新增.修改文件内容的权限 1)如果没有r配合,那么vi编辑文件会提示无法编辑(但可 ...

  7. WebSocket 详解

    WebSocket 出现前 构建网络应用的过程中,我们经常需要与服务器进行持续的通讯以保持双方信息的同步.通常这种持久通讯在不刷新页面的情况下进行,消耗一定的内存资源常驻后台,并且对于用户不可见.在 ...

  8. python各种操作列表的方法及案例

    一.循环的使用方法 names = ["张真","刘德华","哈林","谢霆锋","张柏芝"] fo ...

  9. debug模式开启会做哪些事(源码分析)

    以往开发中不管是django框架下开发还是其它框架下开发, 只知道在开发阶段要开启debug模式, 却一直没有深究它会我们做哪些事, 今天使用tornado时偶然看到源码中写的很清楚,故写下来加深印象 ...

  10. python-01 spider原理

    用Python可以做什么?可以做日常任务,比如自动备份你的MP3:可以做网站,很多著名的网站包括YouTube就是Python写的:可以做网络游戏的后台,很多在线游戏的后台都是Python开发的.总之 ...