java 以字符为单位读取文件(3)
2016-02-22 21:26
691 查看
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; public class readFile2 { /** * 以字符为单位读取文件,常用于读文本,数字等类型的文件 */ public static void readFileByChars(String fileName) { File file = new File(fileName); Reader reader = null; try { System.out.println("以字符为单位读取文件内容,一次读一个字符:"); // 一次读一个字符 reader = new InputStreamReader(new FileInputStream(file)); int tempchar; while ((tempchar = reader.read()) != -1) { // 对于windows下,rn这两个字符在一起时,表示一个换行。 // 但如果这两个字符分开显示时,会换两次行。 // 因此,屏蔽掉r,或者屏蔽n。否则,将会多出很多空行。 if (((char) tempchar) != 'r') { System.out.print((char) tempchar); } } reader.close(); } catch (Exception e) { e.printStackTrace(); } try { System.out.println("以字符为单位读取文件内容,一次读多个字符:"); // 一次读多个字符 char[] tempchars = new char[30]; int charread = 0; reader = new InputStreamReader(new FileInputStream(fileName)); // 读入多个字符到字符数组中,charread为一次读取字符数 while ((charread = reader.read(tempchars)) != -1) { // 同样屏蔽掉r不显示 if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != 'r')) { System.out.print(tempchars); } else { for (int i = 0; i < charread; i++) { if (tempchars[i] == 'r') { continue; } else { System.out.print(tempchars[i]); } } } } } catch (Exception e1) { e1.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { } } } } public static void main(String[] args) { // TODO Auto-generated method stub String filePath="F:\\test\\testR.txt"; //在F盘创建test文件夹,在文件夹下创建testR.txt文件 readFileByChars(filePath); } }
相关文章推荐
- springMVC-interceptors
- eclipse导入java工程不如直接导入java文件方便
- JAVA中关于set()和get()方法的理解及使用
- java 以字节为单位读取文件(2)
- Eclipse配置外部Maven
- JAVA_面向对象_笔记_01
- JAVA_面向对象_笔记_01
- Spring定时任务的几种实现
- java的动态代理机制详解
- eclipse ant jacoco
- JavaWeb----Struts2
- 堆排序-java
- Java
- Java IO 之File类
- HDU Exponentiation 1063 Java大数题解
- Java-final
- LeetCode29DivideTwoIntegers--In Java
- Spring.Net学习笔记(二)-数据访问器
- java中静态代码块的用法 static用法详解
- Spring源代码解析 ---- 循环依赖