java 实现以字符为单位读取文件(3)

来源:互联网 发布:java获取指定cookie 编辑:程序博客网 时间:2024/05/16 10:00
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);    }}
0 0