package com.file;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader; public class TextReadFile {
/*
* 一字节为单位读取
*/
public static void readFileByBytes(String fileName){
File file = new File(fileName); //创建文件
InputStream in = null; System.out.println("!.以字节为单位读取文件内容:一次读取一个");
try {
in = new FileInputStream(file);
int tempbyte;
while((tempbyte = in.read())!=-1){
System.out.write(tempbyte);
}
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
} System.out.println("2.以字节为单位读取文件内容:一次读取多个字节:");
try {
byte[] temptypes = new byte[1024];
int byteread = 0; in = new FileInputStream(fileName);
TextReadFile.showAvailableBytes(in);
while((byteread = in.read(temptypes))!=-1){
System.out.write(temptypes, 0, byteread);
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(in != null){
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/*
* 显示输入六中还剩的字节数
*/
public static void showAvailableBytes(InputStream in){
try {
System.out.println("当前字节输入流中的字节数为:"+in.available());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 义字符为单位读取
*/
public static void readFileByChar(String fileName){
File file = new File(fileName);
Reader read = null; System.out.println("3、以字符为单位读取文件内容,一次读一个字节:");
try {
read = new InputStreamReader(new FileInputStream(file));
int tempchar;
while((tempchar= read.read())!=-1){
if((char)tempchar!='r'){
System.out.print((char)tempchar);
}
}
read.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} System.out.println("4.一字符为单位读取文件内容,一次读取多个:");
char[] tempchars = new char[1024];
int charread = 0;
try {
read = new InputStreamReader(new FileInputStream(file));
while((charread=read.read(tempchars))!=-1){
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 e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(read != null){
try {
read.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} }
/*
* 读一行
*/
public static void readFileByLine(String fileName){
File file = new File(fileName);
BufferedReader reader = null; System.out.println("6.以行为为单位读取文件内容,一次读一行:"); try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
while((tempString = reader.readLine())!=null){
System.out.println("line"+line+":"+tempString);
line++;
}
reader.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(reader!= null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
String fileName = "D:/Desktop/JarCode.txt";
System.out.println("1.按字节为单位读取文件:");
readFileByBytes(fileName);
System.out.println("1.按字符为单位读取文件:");
readFileByChar(fileName);
System.out.println("1.按行为单位读取文件:");
readFileByLine(fileName);
}
}

[JAVA 多种方式读取文件]的更多相关文章

  1. Java多种方式读文件,追加文件内容,等对文件的各种操作

    一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 import java.io.BufferedReader; import jav ...

  2. java中多种方式读文件

    转自:http://www.jb51.net/article/16396.htm java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内 ...

  3. java多线程批量读取文件(七)

    新公司入职一个多月了,至今没有事情可以做,十来个新同事都一样抓狂,所以大家都自己学习一些新东西,我最近在看zookeeper,感觉蛮不错的,和微服务的zuul以及eureka功能类似,只是代码复杂了一 ...

  4. Java相对路径读取文件

    不管你是新手还是老鸟,在程序中读取资源文件总会遇到一些找不到文件的问题,这与Java底层的实现有关,不能算bug,只要方法得当,问题还是可以解决的. 项目的文件夹结构: repathtest ├─sr ...

  5. Java配置方式读取外部的资源配置文件

    通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: package cn.qlq; import org.springframework.context. ...

  6. Java io实现读取文件特殊内容进行替换

    最近公司在做一个项目其中一个需求是读取文件中的特殊字符在其后进行添加或删除字符操作,本来想直接使用randomAccessFile按行读取,读取到特殊字符就进行添加或删除操作,但是randomAcce ...

  7. 【java】:读取文件

    PS:转 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制 ...

  8. 【工具】JAVA 在单元读取文件并比较

    package test20140709; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  9. O_DIRECT方式读取文件示例

    #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/stat.h& ...

随机推荐

  1. U3D 动画帧事件问题

    测试版本U3D5.4. 1,为一个模型导入外部动画.为动画剪辑attack在某帧添加event,事件为 public void OnAttackEvent(){},函数体不做任何事情. 结果发现,在动 ...

  2. #CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!

    特别声明: 此次并非针对其他参与2013中国十大优秀开源项目的同行,体系有漏洞要谴责的是制定规则并从中获益但不作为的权贵,草根们制定不了规则但可发现和利用漏洞,这是程序员应有反叛精神没错.但被作为道具 ...

  3. 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!

    在开始正文之前,请帮忙为当前排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/codevo ...

  4. PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)

    主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00  今天的主要内容:Markov Chain Monte Carlo,M ...

  5. canvas api

    基本骨骼 <canvas id="canvas" width=1000 height=1000 style="border: 1px black dotted&qu ...

  6. JVM内存管理------JAVA语言的内存管理概述

    引言 内存管理一直是JAVA语言自豪与骄傲的资本,它让JAVA程序员基本上可以彻底忽略与内存管理相关的细节,只专注于业务逻辑.不过世界上不存在十全十美的好事,在带来了便利的同时,也因此引入了很多令人抓 ...

  7. OS存储器管理(一)

    存储器的层次: 分为寄存器.主存(内存)和 辅存(外存)三个层次. 主存:高速缓冲存储器.主存储器.磁盘缓冲存储器, 主存又称为可执行存储器: 辅存:固定磁盘存储器.可移动的外部存储器: 其可长期保存 ...

  8. Spark源码在Eclipse中部署/编译/运行

    (1)下载Spark源码 到官方网站下载:Openfire.Spark.Smack,其中Spark只能使用SVN下载,源码的文件夹分别对应Openfire.Spark和Smack. 直接下载Openf ...

  9. UltraEdit 编译输出中文乱码的解决办法

    配置UE的时候,都告诉大家javac   %n%e 接可以了,但是再运行的时候,会出现乱码,再加上-J-Duser.language=GBK就可以了,也就是下面的样子. javac -J-Duser. ...

  10. Apache CXF实现WebService发布和调用

    第一种方法:不用导入cxf jars 服务端: 1. 新建Web工程 2.新建接口和实现类.测试类 目录结构图如下: 接口代码: package com.cxf.spring.service; imp ...