1. package com.file;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileReader;
  7. import java.io.IOException;
  8. import java.io.InputStream;
  9. import java.io.InputStreamReader;
  10. import java.io.Reader;
  11.  
  12. public class TextReadFile {
  13. /*
  14. * 一字节为单位读取
  15. */
  16. public static void readFileByBytes(String fileName){
  17. File file = new File(fileName); //创建文件
  18. InputStream in = null;
  19.  
  20. System.out.println("!.以字节为单位读取文件内容:一次读取一个");
  21. try {
  22. in = new FileInputStream(file);
  23. int tempbyte;
  24. while((tempbyte = in.read())!=-1){
  25. System.out.write(tempbyte);
  26. }
  27. in.close();
  28. } catch (IOException e) {
  29. // TODO Auto-generated catch block
  30. e.printStackTrace();
  31. return;
  32. }
  33.  
  34. System.out.println("2.以字节为单位读取文件内容:一次读取多个字节:");
  35. try {
  36. byte[] temptypes = new byte[1024];
  37. int byteread = 0;
  38.  
  39. in = new FileInputStream(fileName);
  40. TextReadFile.showAvailableBytes(in);
  41. while((byteread = in.read(temptypes))!=-1){
  42. System.out.write(temptypes, 0, byteread);
  43. }
  44.  
  45. } catch (Exception e) {
  46. // TODO Auto-generated catch block
  47. e.printStackTrace();
  48. }finally{
  49. if(in != null){
  50. try {
  51. in.close();
  52. } catch (IOException e) {
  53. // TODO Auto-generated catch block
  54. e.printStackTrace();
  55. }
  56. }
  57. }
  58. }
  59. /*
  60. * 显示输入六中还剩的字节数
  61. */
  62. public static void showAvailableBytes(InputStream in){
  63. try {
  64. System.out.println("当前字节输入流中的字节数为:"+in.available());
  65. } catch (IOException e) {
  66. // TODO Auto-generated catch block
  67. e.printStackTrace();
  68. }
  69. }
  70. /*
  71. * 义字符为单位读取
  72. */
  73. public static void readFileByChar(String fileName){
  74. File file = new File(fileName);
  75. Reader read = null;
  76.  
  77. System.out.println("3、以字符为单位读取文件内容,一次读一个字节:");
  78. try {
  79. read = new InputStreamReader(new FileInputStream(file));
  80. int tempchar;
  81. while((tempchar= read.read())!=-1){
  82. if((char)tempchar!='r'){
  83. System.out.print((char)tempchar);
  84. }
  85. }
  86. read.close();
  87. } catch (Exception e) {
  88. // TODO Auto-generated catch block
  89. e.printStackTrace();
  90. }
  91.  
  92. System.out.println("4.一字符为单位读取文件内容,一次读取多个:");
  93. char[] tempchars = new char[1024];
  94. int charread = 0;
  95. try {
  96. read = new InputStreamReader(new FileInputStream(file));
  97. while((charread=read.read(tempchars))!=-1){
  98. if((charread == tempchars.length)&&(tempchars[tempchars.length-1]!='r')){
  99. System.out.print(tempchars);
  100. }else{
  101. for(int i = 0;i<charread;i++){
  102. if(tempchars[i]=='r'){
  103. continue;
  104. }else{
  105. System.out.print(tempchars[i]);
  106. }
  107. }
  108. }
  109. }
  110. } catch (Exception e) {
  111. // TODO Auto-generated catch block
  112. e.printStackTrace();
  113. }finally{
  114. if(read != null){
  115. try {
  116. read.close();
  117. } catch (IOException e) {
  118. // TODO Auto-generated catch block
  119. e.printStackTrace();
  120. }
  121. }
  122. }
  123.  
  124. }
  125. /*
  126. * 读一行
  127. */
  128. public static void readFileByLine(String fileName){
  129. File file = new File(fileName);
  130. BufferedReader reader = null;
  131.  
  132. System.out.println("6.以行为为单位读取文件内容,一次读一行:");
  133.  
  134. try {
  135. reader = new BufferedReader(new FileReader(file));
  136. String tempString = null;
  137. int line = 1;
  138. while((tempString = reader.readLine())!=null){
  139. System.out.println("line"+line+":"+tempString);
  140. line++;
  141. }
  142. reader.close();
  143. } catch (Exception e) {
  144. // TODO Auto-generated catch block
  145. e.printStackTrace();
  146. }finally{
  147. if(reader!= null){
  148. try {
  149. reader.close();
  150. } catch (IOException e) {
  151. // TODO Auto-generated catch block
  152. e.printStackTrace();
  153. }
  154. }
  155. }
  156. }
  157. public static void main(String[] args) {
  158. String fileName = "D:/Desktop/JarCode.txt";
  159. System.out.println("1.按字节为单位读取文件:");
  160. readFileByBytes(fileName);
  161. System.out.println("1.按字符为单位读取文件:");
  162. readFileByChar(fileName);
  163. System.out.println("1.按行为单位读取文件:");
  164. readFileByLine(fileName);
  165. }
  166. }

[JAVA 多种方式读取文件]的更多相关文章

  1. Java多种方式读文件,追加文件内容,等对文件的各种操作

    一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 import java.io.BufferedReader; import jav ...

  2. java中多种方式读文件

    转自:http://www.jb51.net/article/16396.htm java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内 ...

  3. java多线程批量读取文件(七)

    新公司入职一个多月了,至今没有事情可以做,十来个新同事都一样抓狂,所以大家都自己学习一些新东西,我最近在看zookeeper,感觉蛮不错的,和微服务的zuul以及eureka功能类似,只是代码复杂了一 ...

  4. Java相对路径读取文件

    不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的. 项目的文件夹结构: repathtest ├─sr ...

  5. Java配置方式读取外部的资源配置文件

    通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: package cn.qlq; import org.springframework.context. ...

  6. Java io实现读取文件特殊内容进行替换

    最近公司在做一个项目其中一个需求是读取文件中的特殊字符在其后进行添加或删除字符操作,本来想直接使用randomAccessFile按行读取,读取到特殊字符就进行添加或删除操作,但是randomAcce ...

  7. 【java】:读取文件

    PS:转 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制 ...

  8. 【工具】JAVA 在单元读取文件并比较

    package test20140709; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  9. O_DIRECT方式读取文件示例

    #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/stat.h& ...

随机推荐

  1. WPF:自动执行"机器人"程序若干注意事项

    企业应用中,经常会遇到一些需要定时自动执行的程序来完成某些功能,比如:自动定时从第三方web service取回数据.定时对历史数据进行清理.定时向ftp上传业务数据... 这类程序,我习惯称为“机器 ...

  2. Ubuntu环境下安装TinyOS系统

    1.输入下面命令会弹出source list窗口   1 sudo gedit /etc.apt/sources.list 在尾部添加以下地址:   1 2 deb http://tinyos.sta ...

  3. Oracle date 和 timestamp 区别

    1.DATE数据类型 这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型.它可以存储月,年,日,世纪,时,分和秒.它典型地用来表示什么时候事情已经发生或将要发生.    ...

  4. PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)

    主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...

  5. 如何拿到半数面试公司Offer——我的Python求职之路

    从八月底开始找工作,短短的一星期多一些,面试了9家公司,拿到5份Offer,可能是因为我所面试的公司都是些创业性的公司吧,不过还是感触良多,因为学习Python的时间还很短,没想到还算比较容易的找到了 ...

  6. 单从Advice(通知)实现AOP

    如果你在实际开发中没感觉到OOP的一些缺陷,就不要往下看了! 如果你不了解AOP,或类似AOP的思路,请先去了解一下AOP相关的认识. 如果你是概念党,或是经验党,或是从众党,也请不要看了! 我实现的 ...

  7. e.stopPropagation();与 e.preventDefault();

    e.stopPropagation()阻止事件冒泡 <head> <title></title> <script src="Scripts/jque ...

  8. MPLS基础

    1.1  MPLS简介 MPLS(Multiprotocol Label Switching,多协议标签交换)是一种新兴的IP骨干网技术.MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三 ...

  9. 学习服务端JavaScript这个有名的Node.js

    没接触过,试着简单学一下,从头开始: 参照这个教程:https://github.com/alsotang/node-lessons/tree/master/lesson0 一.搭建环境: 1.搭建N ...

  10. 屠龙之路_任生活如何虐你,屠龙之路还得继续_SeventhDay

    摘要 :屠龙少年在"罢工"了一天,在周末客栈补给和放纵之后,突然想起来说好的和公主私奔呢?(此处出现了为何上篇随笔不见公主)咋想之下,貌似公主还在恶龙Alpha的手中.为此,屠龙少 ...