java 读取文件inputstream_使用Inputstream读取文件
在java中,可以使用InputStream对文件进行读取,就是字节流的输入。当读取文件内容进程序时,需要使用一个byte数组来进行存储,如此会有如下两个问题:
1.如何建立合适大小的byte数组,如果已知输入流的大小。
2.如果不知输入流的大小,则肯定需要建立一个很大的byte数组,那么byte中很可能有空的内容,那么如何正确合适的将byte数组的中的内容输出?
先看第一个问题:解决之道就是获取输入流的大小,创建此大小的byte数组。代码如下:view plaincopy to clipboardprint?
//使用InputStream从文件中读取数据,在已知文件大小的情况下,建立合适的存储字节数组
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
public class InputStreamDemo01
{
public static void main(String args[])throws Exception{
File f = new File("E:"+File.separator+"java2"+File.separator+"StreamDemo"+File.separator+"test.txt");
InputStream in = new FileInputStream(f);
byte b[]=new byte[(int)f.length()]; //创建合适文件大小的数组
in.read(b); //读取文件中的内容到b[]数组
in.close();
System.out.println(new String(b));
}
}
//使用InputStream从文件中读取数据,在已知文件大小的情况下,建立合适的存储字节数组
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
public class InputStreamDemo01
{
public static void main(String args[])throws Exception{
File f = new File("E:"+File.separator+"java2"+File.separator+"StreamDemo"+File.separator+"test.txt");
InputStream in = new FileInputStream(f);
byte b[]=new byte[(int)f.length()]; //创建合适文件大小的数组
in.read(b); //读取文件中的内容到b[]数组
in.close();
System.out.println(new String(b));
}
}
第二个问题:问题的解决之道就是获得输入流何时结束,它在byte中的尾索引位置。可以通过read()方法实现,read()返回读取的字节内容,当内容为空时返回-1。利用此特征可以解决第二个问题。代码如下:
view plaincopy to clipboardprint?
//同过判断文件的结尾来读取文件
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
public class InputStreamDemo02
{
public static void main(String args[]) throws Exception{
File f = new File("E:"+File.separator+"java2"+File.separator+"StreamDemo"+File.separator+"test.txt");
InputStream in = new FileInputStream(f);
byte b[] = new byte[1024];
int len = 0;
int temp=0; //所有读取的内容都使用temp接收
while((temp=in.read())!=-1){ //当没有读取完时,继续读取
b[len]=(byte)temp;
len++;
}
in.close();
System.out.println(new String(b,0,len));
}
}
java 读取文件inputstream_使用Inputstream读取文件相关推荐
- java 保存inputstream_java如何将一个InputStream写入文件啊?
展开全部 java通过InputStream读取和写入文件操作e69da5e6ba903231313335323631343130323136353331333365643662实例代码 1. Fil ...
- java下mysql连接配置文件_Java读取.properties配置文件并连接数据库
1.读取配置文件 //Properties集合 流对象读取键值对 public static void getNum() throws Exception { Properties p=new Pro ...
- java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...
- Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件
项目中,经常把一部分功能独立出来,做一个java project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...
- 使用Java中的FileChannel和ByteBuffer在文件中读取/写入文件
过去,我讨论过RandomAccessFile以及如何将其用于在Java中进行更快的IO,在本Java NIO教程中,我们将了解如何通过使用FileChannel和ByteBuffer来使用读/写数据 ...
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...
- java读取csv文件_使用扫描仪读取Java中的CSV文件
java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...
- java读取局域网共享文件夹中文件并保存到本地文件夹
在磁盘新建一个文件夹,右击文件夹属性,点击共享 点击网络和共享中心 设置文件夹可访问权限 到此就可以用本地ip加文件夹名称访问了,同局域网也可以通过改地址访问 文件夹的名称来自这张图的 网络路径 如果 ...
- 超详细:Java 读取 Windows 共享文件夹中的文件,并下载到本地电脑中
目录 JCIFS 介绍 SMB协议 设置共享文件夹(这里我们选择有密码的方式进行共享) 是否设置密码 创建 smb 协议 测试 使用代码将文件夹里的文件下载到本地 项目常常需要有访问共享文件夹的需求, ...
- Java读取、写入、处理Excel文件中的数据
在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Excel会有 ...
最新文章
- Podfile 常见语法
- 数组之间的计算matlab,MATLAB软件数组的运算
- java 阻塞队列 LinkedBlockingQueue ArrayBlockingQueue 分析
- Hadoop Name node is in safe mode报错解决办法
- export default (imported as router) was not found_小学生必须知道的英语语法知识:as…as的七大用法...
- 20172327 2018-2019-1 《程序设计与数据结构》第八周学习总结
- python的return语句求两数之和_程序题(python解)
- [转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案
- Vigenère密码(洛谷P1079题题解,Java语言描述)
- 中国电信9月将率先推出5G新号段:资费也随之曝光 最高599元/月?
- 1971旗舰cpu intel_AMD依然yes!官宣锐龙5000系列CPU,单核性能首次超越英特尔,苏妈:最好的游戏CPU!...
- DevExpress v18.1新版亮点——WPF篇(二)
- Codeforces 1114F Please, another Queries on Array? 线段树
- Grads:绘制风流畅
- SOLIDWORKS Composer生成BOM表属性不显示的解决办法
- 【源码分享】-c++界面源代码分享
- 《Excel大神上分攻略》学习笔记1——填充、行列操作、数据格式
- ScrollView嵌套Tablaout与ViewPager联动(标签)(ScrollView与ViewPager冲突)
- VSCode这13款插件也太好用了
- 鲁棒性、泛化的解释和区别
热门文章
- DAVIS Driving Dataset 2020 (DDD20) 【转载】
- android网络编程案例,深入理解Android网络编程pdf 完整版
- 非洲机皇传音继续出圈
- 【每日英文】2021.8.5
- IDEA添加gitlab仓库并上传代码(无需使用任何git指令),报错Ask a project Owner or Maintainer to create a default branch解决方案
- 基于PaaS人事部门间平台多重身份的技术解决方案
- HCL_路由器_三层交换
- 角色设计竟然有这些小技巧
- 下等人薄情,中等人深情,上等人……
- MySQL8.0 - 新特性 - Descending Index 1