源文件

InputStreamReader reader=new InputStreamReader(new FileInputStream(file),"UTF-8");
//读入缓冲区
char[] buffer = new char[1024];
//读入结果
StringBuffer result = new StringBuffer();
//每次读入缓冲区的长度
int len;
//从读入流中读取文件内容并形成结果
while ((len = reader.read(buffer)) != -1) {
result.append(buffer, 0, len);
}

.read(buffer)的意思就是一次性读取1024个数据,返回值是一个int,就是返回的是读取的指针的下标,当指针为-1时,就代表读取完成。

每次读取时,指针都会往下移1024个数据。

接下来就是拼接字符串,如果你是字节型的数据的话,就调用new String(byte [])这个方法来转化,将字节转化为字符。

这里面还有一个问题就是如果你使用字符读取流读取中文乱码的话,就要使用

InputStreamReader这个类来转换一下编码格式。.read(buffer)就是将文件数据一次性读取1024读取到buffer中,然后继续while循环,直到读到文件末尾。用Stringbuffer在while循环中不断的拼接,最后循环结束在一次性输出去。

不要使用

println,因为这就意味着,每次输出就换行,即使在循环结束后再使用println,它还是会输出完再换一行,如果在while循环里面,就意味着每1024个数据就要换行。

文件里面的格式和java读取到的格式是一样的,所以不要管文件本身的格式。比如说:

asdas
sakdba
asdbsaklfna
a

这些文件里面的换行根本就不需要考虑。

如果是输出流,注意每次都要flush,清空“管道”

如果是缓存流,它循环一次,一次读取一行,并且不带换行的,那种才需要带println的

java文件读取 while ((len = reader.read(buffer)) != -1){}的理解的更多相关文章

  1. JAVA文件读取FileReader

    JAVA文件读取FileReader 导包import java.io.FileReader 创建构造方法public FileReader(String filename),参数是文件的路径及文件名 ...

  2. java 文件读取大全

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

  3. java 文件读取写入

    public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileB ...

  4. java文件读取与写入

    package com.myjava; import java.io.*; import java.util.ArrayList; import java.util.Collections; impo ...

  5. Java文件读取

    package a.ab; import java.io.*; public class FileWrite { public static void main(String[] args) { Fi ...

  6. JAVA 文件读取写入后 md5值不变的方法

    假如我们想把某文件读入 StringBuffer 并写入新文件,新文件md5值需要保持不变(写入新文件后保证和源文件一模一样), 我们就需要在操作 StringBuffer 时附加换行符: Strin ...

  7. 【转】java 文件 读取目录下的所有文件(包括子目录)

    转自:http://www.cnblogs.com/pricks/archive/2009/11/11/1601044.html import java.io.File; import java.io ...

  8. java 文件读取的一些方法

    web项目读取日志文件 //得到路径 String appPath = filterConfig.getServletContext().getRealPath("/"); // ...

  9. 从零开始学 Web 之 HTML5(三)网络监听,全屏,文件读取,地理定位接口,应用程序缓存

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  10. HTML5 文件读取

    一.定义 input的file类型会渲染为一个按钮和一段文字.点击按钮可打开文件选择窗口,文字表示对文件的描述(大部分情况下为文件名):file类型的input会有files属性,保存着文件的相关信息 ...

随机推荐

  1. Python中字符串截取

    # 截取字符串时,如果位数不够,Python不会报错,而是返回空字符串 # 这是因为Python中的字符串是不可变的,所以当我们尝试访问一个不存在的索引时,Python会返回空字符串而不是报错 # 示 ...

  2. 初识Redis与桌面客户端

    Redis介绍 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库. Redi ...

  3. JSTL fn函数使用

    首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function ...

  4. 关于.Net 6.0 在Linux ,Docker容器中,不安装任何依赖就生成图形验证码!!!!!!!!!!!

    在.Net Framework时代,我们生成验证码大多都是用System.Drawing. 在.Net 6中使用也是没有问题的. 但是,System.Drawing却依赖于Windows GDI+. ...

  5. python url中文转码_python实现转换url编码的方法

    python url中文转码_python实现转换url编码的方法 urllib.parse命令:url编码转换 >>> import urllib.parse >>&g ...

  6. 关于Async、Await的一些知识点

    在ASP.NET Core中,当一个HTTP请求到达服务器时,它会被分配给线程池中的一个线程来处理.该线程会执行相应的Controller方法. 如果这个方法是一个异步方法并且使用了await关键字, ...

  7. MySQL系列之主从复制基础——企业高可用性标准、主从复制简介、主从复制前提(搭建主从的过程)、主从复制搭建、主从复制的原理、主从故障监控\分析\处理、主从延时监控及原因

    文章目录 0.企业高可用性标准 *** 0.1 全年无故障率(非计划内故障停机) 0.2 高可用架构方案 1. 主从复制简介 ** 2. 主从复制前提(搭建主从的过程) *** 3. 主从复制搭建(C ...

  8. Go 项目代码布局

    Go 项目代码布局 目录 Go 项目代码布局 一.Go 语言"创世项目"结构 1.1 src 目录结构三个特点 二.Go 项目布局演进 2.1 演进一:Go 1.4 版本删除 pk ...

  9. FFMPEG+SDL简单视频播放器——视频快进

    之前写过一篇关于视频播放器的文章.播放器只简单实现了视频播放的功能,在此功能的基础上,给它加上一个视频快进的功能. 实现 添加参数 // video play control bool do_seek ...

  10. math库常用函数+产生随机数总结

    math库常用函数+产生随机数总结 1.对x开平方 double sqrt(x)://返回值为double类型,输入的x类型随意,只要是数的类型 2.求常数e的x次方 double exp(x);// ...