public classReadFromFile {/*** 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。*/

public static voidreadFileByBytes(String fileName) {

File file= newFile(fileName);

InputStream in= null;try{

System.out.println("以字节为单位读取文件内容,一次读一个字节:");//一次读一个字节

in = newFileInputStream(file);inttempbyte;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= newFileInputStream(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 voidreadFileByChars(String fileName) {

File file= newFile(fileName);

Reader reader= null;try{

System.out.println("以字符为单位读取文件内容,一次读一个字节:");//一次读一个字符

reader = new InputStreamReader(newFileInputStream(file));inttempchar;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(newFileInputStream(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 voidreadFileByLines(String fileName) {

File file= newFile(fileName);

BufferedReader reader= null;try{

System.out.println("以行为单位读取文件内容,一次读一整行:");

reader= new BufferedReader(newFileReader(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 voidreadFileByRandomAccess(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 voidshowAvailableBytes(InputStream in) {try{

System.out.println("当前字节输入流中的字节数为:" +in.available());

}catch(IOException e) {

e.printStackTrace();

}

}public static voidmain(String[] args) {

String fileName= "C:/temp/newTemp.txt";

ReadFromFile.readFileByBytes(fileName);

ReadFromFile.readFileByChars(fileName);

ReadFromFile.readFileByLines(fileName);

ReadFromFile.readFileByRandomAccess(fileName);

}

}

java解析文件_Java读取文件方法大全相关推荐

  1. java 正则表达式 电话_Java读取文件及基于正则表达式的获取电话号码功能详解...

    本文实例讲述了Java读取文件及基于正则表达式的获取电话号码功能.分享给大家供大家参考,具体如下: 1.正则表达式 正则表达式,又称 正规表示法 . 常规表示法 (英语:Regular Express ...

  2. java用浏览器下载文件_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过url预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  3. java 无法读取文件_java 读取文件,无法显示文件内容,如何解决? 谢谢。

    从来没见过进行文件读取写入时,在写入中需要随机数的,你读取文件就是从一个地方获取输入流,然后将这个输入流写到别的地方,根本不要随机数. 给你一个示例://copy a file to another  ...

  4. java浏览器预览文件_JAVA读取文件流,设置浏览器下载或直接预览操作

    最近项目需要在浏览器中通过URL预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注 ...

  5. java 解析证书_java 读取证书类以及key tool gui 1.7

    Key Tool Gui 1.7 /** * Title: Light Weight APIs for crypto * Description: 一个上海CA证书(根证书和用户证书)进行处理的例子 ...

  6. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  7. java读取空格_java 读取文件路径空格和中文的处理

    应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案: 1, TestURL().class.getResource("&quo ...

  8. java中如何读写文件_JAVA: 读写文件的几种方法

    如果您使用java8,可以也参考这篇文章:JAVA: Java8流逐行读取文件 import java.io.BufferedReader; import java.io.BufferedWriter ...

  9. java classpath 遍历_Java 读取JAR文件信息

    Java 读取JAR文件信息 为什么想到读取JAR文件的信息 查看spring 资源处理,查找多个资源classpath*,会去寻找jar包中的内容,因此会出现读取jar包中的文件或者读取文件夹中的文 ...

最新文章

  1. iphone相册怎么加密_iphone相册加密码锁,保护隐私
  2. mvn 打包项目到eclipse
  3. sqlplus SPOOL 导出网页文件
  4. Spring Boot 的配置文件
  5. 在Windows下搭建SVN服务器并且集成到 Eclipse 开发环境中
  6. 右键新建中增加新建.md文件
  7. 如何下载SAP Intelligent Robotic Process Automation相关的软件
  8. springmvc(18)使用WebSocket 和 STOMP 实现消息功能
  9. JavaScript正则表达式快速简单的指南
  10. 列举5个python内置函数和使用方法_Python基础-----函数、内置函数、递归等练习
  11. 【Spark】Spark cache 报错 Exception thrown in awaitResult
  12. 小程序素材抓取_到底要不要做百度小程序
  13. TIOBE 4月编程语言排行榜:MATLAB即将跌出TOP 20
  14. 【笔试/面试】排列组合与概率计算(三)
  15. 【java笔记】基本类型与字符串之间的转换
  16. 计算机网络原理实验实验七:分析IP报文结构
  17. oracle里面查找重复项,Oracle数据库查询重复数据及删除重复数据方法
  18. 灰色线性回归组合预测模型及R语言实现
  19. C# 企业微信:开启消息接受接收消息推送消息
  20. Google Drive(谷歌网盘)下载超大文件方法

热门文章

  1. ren命令linux,Excel2003使用重命名命令ren步骤
  2. 用户登录如何给密码加密xxtea.js
  3. 0-9的次方符号,有需要的小伙伴可以复制
  4. Unity Mecanim 动画系统简介
  5. Javascript(JS) leetcode 796. 旋转字符串
  6. 嘉明SSM学习之基于SSM框架的学生信息管理系统
  7. Springboot养老院管理系统
  8. 小甲鱼Python笔记
  9. 线性滤波器非线性滤波器
  10. Datawhale第十二期组队学习--Python爬虫编程实践 Task03:session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取