.read()方法返回的是读取的内容吧,那么这段代码的倒数第二行第三行怎么解释呢?求各位大佬教导

File file = new File(fileName);
FileReader readIn = new FileReader(file);

int size = (int)file.length();

int charsRead = 0;

char[] content = new char[size];

while(readIn.ready())

charsRead += readIn.read(content, charsRead, size - charsRead);

readIn.close();

0

1个回答

public int read(char [] c, int offset, int len)
这是filereader里read方法的方法名,用途是读取字符到c数组,返回读取到字符的个数
三个参数分别的意思是,将文件中内容读到数组c中,读取开始的索引是offset,读取长度是len,
而返回值是读取到的字符的个数。

所以你这里倒数第二第三行的意思很明显,
当能够继续读取时,将文件的未读部分(即charsread后面的部分)读取到content数组中,
因为不能够超出数组索引,所以第三个参数是size-charsread.
返回值是读取到的字符的长度,累加到charsread上就是已经读取过的字符长度。

0
weixin_44118331
昔我往矣~杨柳依依 charsRead += readIn.read(content, charsRead, size - charsRead);刚开始charsread为0,那么就是从索引为0到size所有的数据全部都读进去了吗?这样读一次不就行了吗?
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
批处理获取文件倒数第三行
@echo off&setlocal enabledelayedexpansion (for %%a in (*.txt) do ( for /f "usebackq delims=" %%b in ("%%a") do ( set "str2=!str1!" set "str1=!str!" set "str=%%b" ) if define..
python获取文件倒数第n行
#获取文件倒数第n行 def getTail(file,num): readlen=1024 #每次多偏移1024字节 readoffset=0 #每次从文件末尾向前偏移量 linenum=0 #当前读取的行号 preindex=None #上一个换行符所在位置 while True: readoffset=readoffset+readle...
使用java读取文本文件的倒数第N行
本文主要介绍使用java语言读取文本文件的倒数第N行,并且打印其内容。
shell 读取文件第几行 第几列的值
shell 读取文件第几行 第几列的值
python实现文件倒数N行读取
python并没有直接提供读取文件倒数N行的方法,自己写了一个简易tail,性能也比较不错。 性能测试: 返回字符串: 100000行:0.219849s 10000行:0.024092s 1000行:0.004009s def tail(file, taillines=500, return_str=True,av
【Java】找出三角数阵的规律并编写程序(第一行1第二行11第三行121第四行1321......)
public static int[][] tranPrint(int row){ int[][] arr = new int[row][row]; for(int i=0;i<row;i++){ for (int j=0;j<row;j++){ if(j == 0){//第一列 ...
sed和shell:删除文件的第n行和倒数第n行
删除第三行,并把结果送至文件newfile sed '3d' file>newfile 删除倒数第三行,把结果送至文件newfile tac file|sed '3d'|tac >newfile删除倒数第三行,bash shell版本linenum=`cat file | wc -l` linenum_last3=`expr $linenum - 3` sed -n ''"$linenum_last
用shell分析文本,统计文本每一行倒数第三列之和
题目:用shell完成一个文本分析,文本的格式如下,需要统计一下倒数第三列数字之和第一列:aaa,bbb,ccc,ddd,101,102,103,104,105第二列:eee,fff,ggg,hhh,201,202,203,204,205第三列:iii,jjj,kkk,lll,301,302,303,304,305第N行:... ... ...倒数第三列之和:求103+203+303+...#!/...
获取日志的倒数某行或者几行
输出文本或者日志的倒数第3行: cat 1.txt | tac | sed -n '3p' tail -3 1.txt | head -1 C程序示例:读取加载到链表再遍历出指定行 #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 3 typedef struct Tre...
将一个文本文档上的文本反转,第一行和倒数第一行交换,第二行和倒数第二行交换
public static void main(String[] args) throws IOException {     //将一个文本文档上的文本反转,第一行和倒数第一行交换,第二行和倒数第二行交换         /**          * @param args          * 将一个文本文档上的文本反转,第一行和倒数第一行交换,第二行和倒数第二行交换       
linux按行读取 空行丢弃
我的代码: 代码中遇到以下问题:strlen(app_name)!=0 不能写1 因为虽然如果有一行空行,会读入一行\n 但是上面的那个if 已经把‘\n’改为‘\0’ 每次读取之后,在开始下一次读取的时候之前必须要把数组清0 因为上一次读取比下一次多 数组因为覆盖不全,会干扰下一次读取。 如果在win建立的文本 拖到linux下面,会出现格式错误。cat -v a.txt 这个能显...
《数据库SQL实战》取倒数第三
此题来自于nowcoder,在此记录一下limit的用法,加深印象。 题目:查找入职员工时间排名倒数第三的员工所有信息 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16)
Java读取文件内容并输出的最简单的方式之一(只需三行代码)
这次我使用的读取文件内容的方法所利用的是java的Scanner类。在我们初学 java的过程中Scanner类大多用于获取用户的键盘的输入,因为Scanner类确实是一个 很好用的获取用户的键盘输入。不过Scanner在获取输入的时候并不仅仅限于获取键盘输入的System.out,通过查看api文档我们可以看到实例化Scanner的时候我们可 以传入InputStream,File,Path
js动态删除表格,动态删第几行到第几行
动态删除表格中的行数,指定那些能删哪些不能删,把查询到的语句遍历出来
JAVA中read()是如何读取字符的、read()的返回值为什么要赋给整型变量?配合available读取字长时它们的工作原理是什么?
最近,本人初学Java中有关文件输入输出时,遇到了一些疑惑,给大家看一段利用read()读取文档字符并将字符输出到屏幕的代码片段: 其中“测试.txt”文档中存放的字符串是“aaaaaa”,运行结果为: 可能很多初学者像我一样都对while循环中的语句有以下疑惑: 1、fin.available()是用来计算可读文件的的字长的,应该是恒大于零的,那岂不是死循环?(猜想fin.avai...
java:IO流(read()方法返回值为什么是int)
read()方法读取的是一个字节,为什么返回是int,而不是byte *  因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111,那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会...
输出3行,第一行打印一遍输入的数,第二行打印两遍,第三行打印三遍。 第二行和第三行,用空格分隔同一行的数字。 实数用"6.2f"格式输出。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double x=scanner.nextDouble(); for(int i=0;i<3;i++){ for(int j=0;j&l...
Java中使用BufferedReader的readLine()方法和read()方法来读取文件内容
目标:读文件 编程时,有很多时候需要读取本地文件,下面介绍一下读取方式: 读单行文件 1 package com; 2 import java.io.*; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import javax.print.DocFlavor.CHAR_ARRAY; ...
打印第几行内容-shell
HLdeMacBook-Air:~ hl$ more file.txt Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 HLdeMacBook-Air:~ hl$ 文件file.txt 内容如上,打印第9行内容,可以采取以下几种方式 方式一:  tail + head tail -n +9 f...
python3文件读取,readlines()方法去除返回列表中\n
1、处理\n 测试文本如下: 不做处理时,输出的列表会有\n,如下 path = "test.txt" txt = open(path, "r", encoding="UTF-8") print(txt.readlines()) txt.close() 如上代码输出的结果如下: ['123\n', '456\n', '789\n', '123'] 使用strip方法可以去除,代码...
pandas常用操作三——关于行
df_data = pd.read_csv(path + '\\' + deletefile, sep=',') #以分隔符逗号读取数据 df_data.loc['a'] # 找到行索引为‘a’的数据 df_data.loc['a':'d'] #找到行索引为‘a’至’d‘的数据(包含’d‘行) df_data.iloc[0:3]#找到第一行至第三行的数据(不包含第四行) # df.ix[r...
数据分页说明
题目描述:数据分页,对于指定的页数和每页的元素个数,返回该页应该显示的数据。 输入描述: 第一行输入数据个数,第二行输入全部数据,第三行输入页数,第四行输入每页最大数据个数。 输出描述: 输出该页应该显示的数据,超出范围请输出“超过分页范围”。 import java.util.Scanner; public class Main02 { public static void ...
python中读取文件函数read()、readline()、readlines()的区别
python中读取文件函数read()、readline()、readlines()的区别
pandas csv读取——用实际样例介绍read_csv方法参数
pandas读取csv文件,各个参数介绍1.为了熟悉它的用法,首先推荐官方文档2.个人学习心得2.1常用参数说明(filepath,sep,header,skiprows等)2.1.1参数使用示例2.1.1.1首先看直接pd.read_csv(__filepath__)的效果2.1.1.2其次看pd.read_csv(filepath, header = 2)会发生什么2.1.1.3 当skipr...
Python中文件读取方法read(),readline(),readlines()的区别
Python中文件读取方法read(),readline(),readlines()的区别。
从csv文件特定行开始读取数据
num = 0 with open('dalian_all.csv', 'rt', encoding='gbk') as csvfile: reader = csv.DictReader(csvfile) for line in reader:#逐行读取csv文件 num += 1 #每读一行,num+1 #...
Python3之文件读写操作详解
文件操作的步骤: 打开文件 -> 操作文件 -> 关闭文件 切记:最后要关闭文件(否则可能会有意想不到的结果) 打开文件 文件句柄 = open(‘文件路径’, ‘模式’) 指定文件编码 文件句柄= open(‘文件路径’,’模式’,encoding=’utf-8’) 为了防止忘记关闭文件,可以使用上下文管理...
Linux sed在某行前一行和后一行添加内容
转载:http://www.361way.com/sed-process-lines/2263.html linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容。今天在批量修改tomcat的日志时就用到了该功能。 一、在某行的前一行或后一行添加内容 具休操作如下: #匹配行前加...
Java 字节读取流的read方法返回int的原因
为什么InputStream.read()读取一个byte确返回一个int呢? java 字节读取流的read方法一次读一个byte但返回int的原因 读取二进制数据按字节读取,每次读一个字节(byte)。 read()的底层是由C++实现的,返回的是unsigned byte,取值范围为[0~255],在java中没有对应的类型,所以只能用int类型接收,由Java接收得到的就是int[0...
数字分解
题目描述 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数 #include #include in
ASP.Net连接Oracle数据库的方法
asp.net连接oracle数据库的方法,得到了如下代码。这段代码打开了MyTable表,并把操作员的名字列出。字段类型是OracleString。读取的时候用的是字段编号,我不知道怎么使用字段名来读取某字段的内容。
java中read()方法返回值解释
最近做作业,读取大数据集,然后做处理分析的项目。当我用fileinputstream流读取文件的时候,然后用fileinputstream.read()方法读取文件的时候,当我查看API的时候,发现read()是读取每个字节,然后返回一个int类型,有没有很纳闷,读取的字节,为什么返回一个int呢?FileInputStream.read()读取一个byte却返回一个int的原因如下:因为字节输入
1411-喜闻乐见的a+b ZCMU
Description 喜闻乐见的a+b来了,当然二进制,八进制,十进制什么的估计你们也懒得写了,来个20进制的a+b Input 给出多组a和b,每个数字一行 数字由0~9和小写字母a~j(10~19) 给出的长度不超过100 Output 每组数据输出a+b的和 Sample Input 1234567890 abcdefghij 99999jjjjj 99999000...
Java IO _System 类对IO的支持
1、掌握System 对IO的三种支持 System.out System.err System.in 2、掌握System.out 及System.err 的区别 3、掌握输入 、输出重定向 具体内容 在讲解JAVA 类库的时候曾经讲解过的System 类
JAVA IO中read()方法的返回值
以下是不太严谨的个人理解,有错误欢迎指出,共同进步:read()方法的作用是从输入流读取数据的下一个字节,返回的字节的值是一个0~255之间的整数。到达流的末尾返回-1。刚开始我以为这个返回值表示的是所读取的数据的长度,可是之后在一个示例程序中发现这种说法解释不通。我就好奇研究了一下这个返回值到底表示什么。首先要知道什么是字节(Byte)和比特(bit),它们都是计算机信息量的度量单位。 每一个二
shell脚本 获取第几行 第几列 的命令 awk sed
例如:我们需要查看 包含 sbin的进程 中的PID号查看当前所有包含sbin的进程[root@fea3 ~]# ps aux | grep sbin只过滤出所有的PID号:[root@fea3 ~]# ps aux | grep sbin | awk '{print $2}'只获取前三行PID号:使用命令sed -n 指定行数;-n '2p':第二行;-n '1,3p':第一至三行[root@f...
64位整数乘法
0102 64位整数乘法 0x00「基本算法」例题 描述 求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。 输入格式 第一行a,第二行b,第三行p。 输出格式 一个整数,表示a*b mod p的值。 样例输入 2 3 9 样例输出 6 a*b mod p=a*b-[a*b/p]*p []为向下去整 #include<iostream&gt...
CTF题库-实验吧(密码学)之综合篇
版权声明:如果对大家有帮助,大家可以自行转载的。原文链接: 1.CTF比赛常用在线转码网站: ASCII 在线转换器:http://www.ab126.com/goju/1711.html 各种密码加密与解密:http://www.zjslove.com/3.decode/ 在线加密解密 encode & decode:http://encode.chahuo.com/ MD5:https...
python读文件的三个方法read()、readline()、readlines()详解
#-*-coding:utf-8-*- ''' Created on 2015年8月22日@author: Zroad '''""" 1、读取文件的三个方法:read()、readline()、readlines() 2、三个方法均可接受一个变量用以限制每次读取的数据量,通常不使用该变量。 """""" 关于read()方法: 1、读取整个文件,将文件内容放到一个字符串变量中 2、如果文件大于可用内
Java 中字节流的 read() 方法为什么返回值不是 byte 类型而是 int 类型?
原因 因为不管是网络还是磁盘,数据最终都是以二进制字节流的形式传输,也就是一个字节一个字节。 所以就存在 1111 1111 ,如果用 Java(只存在有符号数) 中的 byte 接收的话,1111 1111 就代表 -1,就会导致流还没有读取完就结束了读取。通过用 int 接收从操作系统中读取过来的字节流,在高 24 位都补零,这样就不会存在读取的数据为 -1 的情况了,所以我们就可以用 -1 ...