[Java] 以字符为单位读取文件,常用于读文本,数字等类型的文件 →→→→→进入此内容的聊天室

来自 , 2020-08-23, 写在 Java, 查看 109 次.
URL http://www.code666.cn/view/44c4c173
  1.         /**
  2.          * 以字符为单位读取文件,常用于读文本,数字等类型的文件
  3.          *
  4.          * @param fileName
  5.          *            文件名
  6.          */
  7.         public static void readFileByChars(String fileName) {
  8.                 File file = new File(fileName);
  9.                 Reader reader = null;
  10.                 try {
  11.                         System.out.println("以字符为单位读取文件内容,一次读一个字节:");
  12.                         // 一次读一个字符
  13.                         reader = new InputStreamReader(new FileInputStream(file));
  14.                         int tempchar;
  15.                         while ((tempchar = reader.read()) != -1) {
  16.                                 // 对于windows下,\r\n这两个字符在一起时,表示一个换行。
  17.                                 // 但如果这两个字符分开显示时,会换两次行。
  18.                                 // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。
  19.                                 if (((char) tempchar) != '\r') {
  20.                                         System.out.print((char) tempchar);
  21.                                 }
  22.                         }
  23.                         reader.close();
  24.                 } catch (Exception e) {
  25.                         e.printStackTrace();
  26.                 }
  27.                 try {
  28.                         System.out.println("以字符为单位读取文件内容,一次读多个字节:");
  29.                         // 一次读多个字符
  30.                         char[] tempchars = new char[30];
  31.                         int charread = 0;
  32.                         reader = new InputStreamReader(new FileInputStream(fileName));
  33.                         // 读入多个字符到字符数组中,charread为一次读取字符数
  34.                         while ((charread = reader.read(tempchars)) != -1) {
  35.                                 // 同样屏蔽掉\r不显示
  36.                                 if ((charread == tempchars.length)
  37.                                                 && (tempchars[tempchars.length - 1] != '\r')) {
  38.                                         System.out.print(tempchars);
  39.                                 } else {
  40.                                         for (int i = 0; i < charread; i++) {
  41.                                                 if (tempchars[i] == '\r') {
  42.                                                         continue;
  43.                                                 } else {
  44.                                                         System.out.print(tempchars[i]);
  45.                                                 }
  46.                                         }
  47.                                 }
  48.                         }
  49.  
  50.                 } catch (Exception e1) {
  51.                         e1.printStackTrace();
  52.                 } finally {
  53.                         if (reader != null) {
  54.                                 try {
  55.                                         reader.close();
  56.                                 } catch (IOException e1) {
  57.                                 }
  58.                         }
  59.                 }
  60.         }

回复 "以字符为单位读取文件,常用于读文本,数字等类型的文件"

这儿你可以回复上面这条便签

captcha