InputStream.available() 可以获取InputStream的总的长度吗答案是不确定。总结如下:处理文件输入流: 可以处理网络流(socket):不可以官方的说明是: 总之,尽量还是别使用它来获取流的长度, 如果是文件, 我们完全可以使用 file对象的.length() 方法啊! 其他流 也应该有对应的方式获取流的长度,实在没有,那怎么办? 只能读流完之后再获取。 有人
转载
2021-11-14 10:33:34
1728阅读
API 对 available() 方法说明:/**
* 返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
* 下一个调用可能是同个线程,也可能是另一个线程。
* 一次读取或跳过此估计数个字节不会受阻塞,但读取或跳过的字节数可能小于该数。
*/
public int available() throws IOException要一次读取多个字节时,经常用到 Input
转载
2023-07-06 22:51:57
96阅读
在用流进行数据或文件读写的时候经常看到某些人会使用下面的固定字节长度的数组,存储InputStream 读取的字节常见代码如下:in = new ByteArrayInputStream(postData.getBytes(charSet));
byte[] buf = new byte[1024];
int len;
while ((len = in.
转载
2023-09-11 21:53:55
169阅读
今天学习了第十章I/O流,在做作业的时候有一些不明白的地方FileInputStream与FileReader的区别 在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和Reader。实际上, InputStream和Reader都是抽象类,并不直接地从
转载
2023-08-21 08:36:07
72阅读
InputStream类的available()方法 这个方法可以在读写操作前先得知数据流里有多少个字节可以读取需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了1000个字节,但是自己的程序调用
原创
2021-05-20 17:47:26
801阅读
# 解决Java InputStream read 报错的问题
在Java编程中,经常会用到InputStream类来读取文件或网络数据流。然而,有时候在使用InputStream的read方法时会出现报错的情况。本文将介绍可能导致这种问题的原因,以及如何解决这个问题。
## 问题分析
当在使用InputStream的read方法时出现报错,通常是因为代码中未正确处理异常或者未正确关闭Inp
原创
2024-07-11 04:11:34
579阅读
IO 流简介IO 即 Input/Output ,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为 IO 流。IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。InputStr
格式化时间public class Test {
public static void main(String[] args) {
Date date = new Date(); //实例化日期
String a = "yyyy-MM-dd HH:mm:ss"; //日期格式
SimpleDateFormat ss = new Simpl
问题:
问题是关于从socket得到的inputStream的,想把inputstream转换成字符串打印出来,其中in表示已经从socket取到的inputstream:
Java code
StringBuffer request = new StringBuffer(2048); int i; byte[] buffer = new byte[2048];try{ i = in.
转载
2024-05-20 17:18:09
49阅读
节值。如果因为已经到达流末尾而没有可用的
转载
2022-11-15 20:04:19
229阅读
# 实现Java InputStream可用大小的方法
## 简介
在Java开发中,有时需要获取InputStream的可用字节数,即判断InputStream中还有多少数据可供读取。本文将介绍一种实现Java InputStream可用大小的方法,帮助刚入行的小白快速掌握该技能。
## 流程概述
实现Java InputStream可用大小的方法,大致可以分为以下几个步骤:
| 步骤 |
原创
2023-11-07 15:03:27
116阅读
要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取。需要注意的是,如果这个方法用在从本地文件读取数据时,一般不会遇到问题,但如果是用于网络操作,就经常会遇到一些麻烦。比如,Socket通讯时,对方明明发来了1000个字节,但是自己的程序调用available()方法却只得到900,或者100,甚至是0,感觉有
原创
2021-04-28 20:52:55
354阅读
在Java7中,InputStream被定义为一个抽象类,相应的,该类下的read()方法也是一个抽象方法,这也就意味着必须有一个类继承InputStream并且实现这个read方法。 查阅Java7 API,我们可以看到,在InputStream中定义了三个重载的read()方法: 但是在这三个方法中,只有参数列表为空的read方法定义为抽象方法,这也就意味着在直接继承自Inpu
转载
2024-01-11 23:13:34
25阅读
首先请查看一下JavaAPI,可以看到InputStream读取流有三个方法,分别为read(),read(byte[] b),read(byte[] b, int off, int len)。其中read()方法是一次读取一个字节,鬼都知道效率是非常低的。所以最好是使用后面两个方法。例如以下代码:Java代码1. /**
2. * 读取流
3. *
转载
2024-10-30 11:41:29
57阅读
read()与read(byte[] b)这两个方法在抽象类InputStream中前者是作为抽象方法存在的,后者不是,JDK API中是这样描述两者的:1:read() : 从输入流中读取数据的下一个字节,返回0到255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回-1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。 2:read(byte[] b
转载
2022-12-14 10:14:15
66阅读
流:流一般分为输入流(InputStream)和输出流(OutputStream)两类.但这种划分并不是绝对的. 在Java开发环境中,主要是由包http://java.io中提供的一系列的类和接口来实现输入和输出处理.标准输入和输出处理则是由包java.lang中提供的类来处理的,但这些类又都是从包http://java.io中的类继承而来.(按照我的理解以我为中心,输入就是从别人
转载
2024-08-26 13:04:42
78阅读
网络会阻塞。
原创
2012-03-07 11:09:42
2462阅读
# Java InputStream Available 方法与缓冲区大小解析
在Java编程中,输入流是一种重要的功能,它使得程序能够从不同的数据源(如文件、网络等)读取数据。InputStream 类提供了多种方法来获取输入数据。其中,`available()` 方法是一个经常被使用的函数,通过它,开发者可以了解缓冲区中可以被读取的数据量。本篇文章将深入探讨 Java InputStream
项目报的错误是:有时候访问项目成功,有时候失败,感觉像是数据库不稳定,本地项目连接服务器数据库没有问题,于是排除了数据库问题,进而怀疑部署包有问题,通过添加日志分析,报了如下错误:java.lang.reflect.UndeclaredThrowableException,网上说是get,set方法没有,但是部署包重新打了十五遍以上,还是一样的错误,把演示环境的正常启动的代码复制到现在部署的服务器
# Java InputStream 的使用与读数据为空问题
在Java编程中,`InputStream` 是一个非常重要的类,它用于读取字节流。无论是文件、网络连接还是其他数据来源,`InputStream` 都扮演了读取数据的角色。然而,在实际应用中,程序员可能会遇到一个常见的问题:读取数据时,`InputStream` 返回的数据为空。本文将探讨这个问题,提供代码示例,并讨论可能的解决方案