java读取字节流设置字节数组长度_java读取流数据时,字节缓存数组,第一次读取时,是否读满,才进行下次读取??...
使用缓存字节数组读取java字节流时,第一次读取是,读满缓存字节数组大小,才进行下次读取,还是随机读一个小于数组大小的值,再进行下次读取???
读取本地文件时,首次读取读满整个字节数组,在进行下次读取。
package com.lyf.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.junit.Test;
public class ReadFile {
@Test
public void readTxt() {
InputStream is = null;
String path = this.getClass().getClassLoader().getResource("abc.txt")
.getPath();
System.out.println(path);
String content = "";
String loopContentString ="";
try {
is = new FileInputStream(path);
byte buff[] = new byte[16];
int len = is.read(buff);
content = new String(buff, 0, len);
System.out.println(len);
while (len != -1) {
len = is.read(buff);
System.out.println(len);
if(len != -1){
content += new String(buff,0,len);
}
}
System.out.println(content);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
结果:其中abc.txt 大小就26个字节
读取远程数据接口数据流时,
String queryUrl = "https://www.kuaidi100.com/chaxun?com=yuantong&nu=887240223128139035";
try {
URL url = new URL(queryUrl);
URLConnection con = url.openConnection();
con.setAllowUserInteraction(false);
urlStream= url.openStream();
String type = con.guessContentTypeFromStream(urlStream);
String charSet = null;
if (type == null){
type = con.getContentType();
}
if (type == null || type.trim().length() == 0
|| type.trim().indexOf("text/html") < 0){
return;
}
if (type.indexOf("charset=") > 0){
charSet = type.substring(type.indexOf("charset=") + 8);
}
byte b[] = new byte[100];
int numRead = urlStream.read(b);
String content = new String(b, 0, numRead);
System.out.println("b中的内容用ascii表示,第3个字符的码是="+b[2]+"||第一次:"+numRead+"||"+content);
int i = 0;
while (numRead != -1) {
numRead = urlStream.read(b);
if (numRead != -1) {
i++;
// String newContent = new String(b, 0, numRead);
String newContent = new String(b, 0, numRead, charSet);
System.out.println("第"+i+"次:"+numRead+"||"+newContent);
content += newContent;
}
}
System.out.println(content);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
urlStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
读取结果:远程数据流的大小2032个字节
第一次读取只读了,27个字节,
问题:为啥读取本地文件和远程数据的首次读取不同,是网络问题,还是java中read函数的限制??
纳闷............
java读取字节流设置字节数组长度_java读取流数据时,字节缓存数组,第一次读取时,是否读满,才进行下次读取??...相关推荐
- JAVA不同类型数组重载_JAVA补课-DAY1:方法重载和数组
IDEA简单方法使用 快捷键 Ctrl+Alt+L,IDEA代码格式化 Ctrl+/单行注释,重复按取消 Ctrl+Shift+/多行注释,重复可取消 5.fori<==>for (int ...
- 通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成。
通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成. FFmpeg视频解码过程 通常来说,FFmpeg的视频解码过程有以下几个步骤: 注册所支持的所有的文件(容器)格 ...
- java 设置数组长度_java如何增加数组长度
遇到一个面试题:在不使用list的add方法的情况下,动态的添加元素(大概是这个样子): ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,需学习arraylist的相关知识(ht ...
- java改变数组长度_Java修改数组长度
java中没有关于修改数组长度的api,在此本人提供了修改数组长度的两个函数:arrayAddLength()和arrayReduceLength().详细见代码. [java] view plain ...
- java string长度字节_java String类型数据的字节长度
utf-8以三个字节存储中文 gbk以二个字节存储中文 /** * 字节(UTF-8)长度计算 * * @param s * 所需计算字节 * @return 字节长度 * @throws Unsup ...
- java string类型大小_Java String类型数据的字节长度
问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校 验,如果数据是纯英文,没有问题,但是如果数 ...
- 遍历数组长度_Java基础之数组
(1)数组:存储同一种数据类型的多个元素的容器(注意和集合的区别 后面的总结之中有). (2)特点:每一个元素都有编号,从0开始,最大编号是长度-1.编号的专业叫法:索引. (3)定义格式 A:数据类 ...
- delphi 获取数组长度_Java中的数组(基础篇六)
在学习数组之前我们先来了解一下容器,生活中的容器比如水杯是用来装水的,衣柜是装衣服的,Java中的容器是用来存储数据的,将多个数据存储到一起,每个数据称为该容器的元素. 数组:数组就是存储数据长度固定 ...
- int数组初始化_Java中到底有没有多维数组
Java 中没有多维数组的概念,从数组底层的运行机制上来看 Java 没有多维数组,但是 Java 提供了支持多维数组的语法,可以实现多维数组的功能. Java 语言里的数组类型是引用类型,因此数组变 ...
最新文章
- react input[type='number']
- Sql Injection 注入攻击
- PCB电路设计10大基本原则
- 攻防世界 ——crypto
- 修改windows远程登录端口
- golang 微框架 gin
- 利用httponly提升应用程序安全性
- 相机标定方法机理总结与公式推导(Camera calibration)
- 产品经理必备利器:UML
- FAST算法学习笔记
- 使用winserver2003配置DNS服务器
- 电脑bios进入方法介绍
- SIM卡中ICCID标识与IMSI的区别
- 大数据领域一些值得读的论文(不断更新
- python怎么从excel获取数据_python如何读取excel表数据
- 双臂14轴机器人YuMi
- Python爬取《隐秘的角落》弹幕数据,实现简单可视化(附源码)
- 10个免费的顶级跨浏览器测试工具
- 如何加快疫苗生产?答案在技术领域而非医学领域
- git 贮藏弹出报错
热门文章
- Python实现获取汉字笔画数,根据汉字笔画数量排序
- c语言读取txt数字错误,C语言fread为什么会读取失败呢?
- 北大青鸟ACCP6.0MyKtv播放器内嵌
- 高驰涛——裸奔到北京的程序猿
- C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换。
- 两位诺奖得主加持、解决“不可能三角”的UPoS机制来了
- Python超时机制两种办法
- 7N65-ASEMI小功率MOS管7N65
- 基于SpringBoot+Mybatis开发的前后端ERP系统Saas平台
- 【stm32】stm32cubeIDE在freeRTOS无法printf float 浮点数