全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java 读取文件方法的总结

java 读取文件方法的总结

1、按字节读取 文件 内容
2、按字符读取 文件 内容
3、按行读取 文件 内容
4、随机读取 文件 内容

public class ReadFromFile { 
  /** 
   * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 
   */ 
  public static void readFileByBytes(String fileName) { 
    File file = new File(fileName); 
    InputStream in = null; 
    try { 
      System.out.println("以字节为单位读取文件内容,一次读一个字节:"); 
      // 一次读一个字节 
      in = new FileInputStream(file); 
      int tempbyte; 
      while ((tempbyte = in.read()) != -1) { 
        System.out.write(tempbyte); 
      } 
      in.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
      return; 
    } 
    try { 
      System.out.println("以字节为单位读取文件内容,一次读多个字节:"); 
      // 一次读多个字节 
      byte[] tempbytes = new byte[100]; 
      int byteread = 0; 
      in = new FileInputStream(fileName); 
      ReadFromFile.showAvailableBytes(in); 
      // 读入多个字节到字节数组中,byteread为一次读入的字节数 
      while ((byteread = in.read(tempbytes)) != -1) { 
        System.out.write(tempbytes, 0, byteread); 
      } 
    } catch (Exception e1) { 
      e1.printStackTrace(); 
    } finally { 
      if (in != null) { 
        try { 
          in.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
 
  /** 
   * 以字符为单位读取文件,常用于读文本,数字等类型的文件 
   */ 
  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下,\r\n这两个字符在一起时,表示一个换行。 
        // 但如果这两个字符分开显示时,会换两次行。 
        // 因此,屏蔽掉\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 readFileByLines(String fileName) { 
    File file = new File(fileName); 
    BufferedReader reader = null; 
    try { 
      System.out.println("以行为单位读取文件内容,一次读一整行:"); 
      reader = new BufferedReader(new FileReader(file)); 
      String tempString = null; 
      int line = 1; 
      // 一次读入一行,直到读入null为文件结束 
      while ((tempString = reader.readLine()) != null) { 
        // 显示行号 
        System.out.println("line " + line + ": " + tempString); 
        line++; 
      } 
      reader.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } finally { 
      if (reader != null) { 
        try { 
          reader.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
 
  /** 
   * 随机读取文件内容 
   */ 
  public static void readFileByRandomAccess(String fileName) { 
    RandomAccessFile randomFile = null; 
    try { 
      System.out.println("随机读取一段文件内容:"); 
      // 打开一个随机访问文件流,按只读方式 
      randomFile = new RandomAccessFile(fileName, "r"); 
      // 文件长度,字节数 
      long fileLength = randomFile.length(); 
      // 读文件的起始位置 
      int beginIndex = (fileLength > 4) ? 4 : 0; 
      // 将读文件的开始位置移到beginIndex位置。 
      randomFile.seek(beginIndex); 
      byte[] bytes = new byte[10]; 
      int byteread = 0; 
      // 一次读10个字节,如果文件内容不足10个字节,则读剩下的字节。 
      // 将一次读取的字节数赋给byteread 
      while ((byteread = randomFile.read(bytes)) != -1) { 
        System.out.write(bytes, 0, byteread); 
      } 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } finally { 
      if (randomFile != null) { 
        try { 
          randomFile.close(); 
        } catch (IOException e1) { 
        } 
      } 
    } 
  } 
 
  /** 
   * 显示输入流中还剩的字节数 
   */ 
  private static void showAvailableBytes(InputStream in) { 
    try { 
      System.out.println("当前字节输入流中的字节数为:" + in.available()); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
 
  public static void main(String[] args) { 
    String fileName = "C:/temp/newTemp.txt"; 
    ReadFromFile.readFileByBytes(fileName); 
    ReadFromFile.readFileByChars(fileName); 
    ReadFromFile.readFileByLines(fileName); 
    ReadFromFile.readFileByRandomAccess(fileName); 
  } 
} 

 5、将内容追加到文件 尾部

public class AppendToFile { 
  /** 
   * A方法追加文件:使用RandomAccessFile 
   */ 
  public static void appendMethodA(String fileName, String content) { 
    try { 
      // 打开一个随机访问文件流,按读写方式 
      RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 
      // 文件长度,字节数 
      long fileLength = randomFile.length(); 
      //将写文件指针移到文件尾。 
      randomFile.seek(fileLength); 
      randomFile.writeBytes(content); 
      randomFile.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
 
  /** 
   * B方法追加文件:使用FileWriter 
   */ 
  public static void appendMethodB(String fileName, String content) { 
    try { 
      //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件 
      FileWriter writer = new FileWriter(fileName, true); 
      writer.write(content); 
      writer.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
  } 
 
  public static void main(String[] args) { 
    String fileName = "C:/temp/newTemp.txt"; 
    String content = "new append!"; 
    //按方法A追加文件 
    AppendToFile.appendMethodA(fileName, content); 
    AppendToFile.appendMethodA(fileName, "append end. \n"); 
    //显示文件内容 
    ReadFromFile.readFileByLines(fileName); 
    //按方法B追加文件 
    AppendToFile.appendMethodB(fileName, content); 
    AppendToFile.appendMethodB(fileName, "append end. \n"); 
    //显示文件内容 
    ReadFromFile.readFileByLines(fileName); 
  } 
} 

以上就是java 读取文件的方法总结,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # 文件读取  # java读取文件的方法  # Java使用I/O流读取文件内容的方法详解  # java 文件上传到读取文件内容的实例  # Java中读取文件转换为字符串的方法  # java读取文件内容为string字符串的方法  # Java IO读取文件的实例详解  # JAVA中读取文件(二进制  # 字符)内容的几种方法总结  # Java读取文件方法汇总  # java读取文件和写入文件的方式(简单实例)  # JAVA按字节读取文件的简单实例  # Java使用FileInputStream流读取文件示例详解  # 多个  # 这两个  # 行号  # 移到  # 组中  # 屏蔽掉  # 将会  # 如有  # 两次  # 希望能  # 第二个  # 谢谢大家  # 多出  # 还剩  # 数为  # 换行  # 疑问请  # Exception  # showAvailableBytes  # br 


相关文章: 微信h5制作网站有哪些,免费微信H5页面制作工具?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何通过免费商城建站系统源码自定义网站主题与功能?  建站之星收费标准详解:套餐费用及年费价格表一览  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  如何在阿里云虚拟服务器快速搭建网站?  建站之星免费模板:自助建站系统与智能响应式一键生成  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何配置IIS站点权限与局域网访问?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  专业网站建设制作报价,网页设计制作要考什么证?  如何在建站主机中优化服务器配置?  如何基于云服务器快速搭建网站及云盘系统?  如何用西部建站助手快速创建专业网站?  如何在七牛云存储上搭建网站并设置自定义域名?  如何在建站之星绑定自定义域名?  建站之星会员如何解锁更多建站功能?  设计网站制作公司有哪些,制作网页教程?  Swift中swift中的switch 语句  已有域名和空间如何搭建网站?  建站之星备案流程有哪些注意事项?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  网站制作服务平台,有什么网站可以发布本地服务信息?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  宁波自助建站系统如何快速打造专业企业网站?  宝塔建站后网页无法访问如何解决?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何彻底删除建站之星生成的Banner?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  网站制作话术技巧,网站推广做的好怎么话术?  如何通过远程VPS快速搭建个人网站?  如何在阿里云通过域名搭建网站?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  html制作网站的步骤有哪些,iapp如何添加网页?  网站图片在线制作软件,怎么在图片上做链接?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  济南专业网站制作公司,济南信息工程学校怎么样?  linux top下的 minerd 木马清除方法  重庆市网站制作公司,重庆招聘网站哪个好?  如何在橙子建站上传落地页?操作指南详解  相册网站制作软件,图片上的网址怎么复制?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何快速使用云服务器搭建个人网站?  临沂网站制作公司有哪些,临沂第四中学官网?  网站制作说明怎么写,简述网页设计的流程并说明原因?  公司网站的制作公司,企业网站制作基本流程有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。