当前位置:首页 » 编程语言 » java读取inputstream

java读取inputstream

发布时间: 2022-11-26 04:23:36

java如何将一个InputStream写入文件

java通过InputStream读取和写入文件操作实例代码

1. File to InputStream

File file = new File("file.xml");
InputStream inputStream = new FileInputStream(file);

2.InputStream to File

InputStream inputStream = new FileInputStream("file.xml");

OutputStream outputStream = new FileOutputStream("file-new.xml");

int bytesWritten = 0;
int byteCount = 0;

byte[] bytes = new byte[1024];

while ((byteCount = inputStream.read(bytes)) != -1)
{
outputStream.write(bytes, bytesWritten, byteCount);
bytesWritten += byteCount;
}
inputStream.close();
outputStream.close();

⑵ java 中inputstream 和outputstream 怎么进行文件的读取写入的

你可以这样理解:
FileInputStream in = new FileInputStream("E:\\a.zip");
FileInputStream 顾名思义,就是写入。这句话将a.zip做编码后放到in,要用a.zip的时候就使用in读出来。

FileOutputStream os = new FileOutputStream("e:\\b.zip");
FileOutputStream顾名思义,就是读出,读出的话就要指定读出的目的地,e:\\b.zip便是目的地。

while(in.read(bt) != -1)
{
os.write(bt);
}
这段代码就是从in中读出编码后的文件内容,然后通过os写入b.zip.

⑶ java读取国产uos压缩的zip文件,zipFile.getInputStream为空怎么解决呀

通过Java来读取UOS格式的国产文档的话,是有API可以来读取的,你可以通过Maven仓库来在下载spire.xls.jar, 在pom.xml中配置依赖:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>
</repository></repositories>

<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.xls</artifactId>
<version>12.7.4</version>
</dependency>
</dependencies>

⑷ java 中配置文件路径读取使用FileReader和InputStream区别和用法

一、按数据来源(去向)分类:
1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream
3、是Char[]: CharArrayReader, CharArrayWriter
4、是String: StringBufferInputStream, StringReader, StringWriter
5、网络数据流:InputStream, OutputStream, Reader, Writer

二、按是否格式化输出分:
1、要格式化输出:PrintStream, PrintWriter

三、按是否要缓冲分:
1、要缓冲:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter

四、按数据格式分:
1、二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
2、纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其所有带Reader, Writer的子类

五、按输入输出分:
1、输入:Reader, InputStream类型的子类
2、输出:Writer, OutputStream类型的子类

六、特殊需要:
1、从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
2、对象输入输出:ObjectInputStream, ObjectOutputStream
3、进程间通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
4、合并输入:SequenceInputStream
5、更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):
首先,考虑最原始的数据格式是什么: 原则四
第二,是输入还是输出:原则五
第三,是否需要转换流:原则六第1点
第四,数据来源(去向)是什么:原则一
第五,是否要缓冲:原则三 (特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特殊的输入或输出方法)
第六,是否要格式化输出:原则二

Java中Inputstream与Reader的区别

Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。
Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,
InputStream、OutputStream是用来处理8位元的流,
Reader、Writer是用来处理16位元的流。
而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。
值得说明的是,在这两种等级机构下,还有一道桥梁InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。

java.io.Reader 和 java.io.InputStream 组成了 Java输入类。Reader 用于读入16位字符,也就是 Unicode编码的字符;而 InputStream 用于读入 ASCII字符和二进制数据。
在 Java中,有不同类型的 Reader 输入流对应于不同的数据源:
FileReader 用于从文件输入;
CharArrayReader 用于从程序中的字符数组输入;
StringReader 用于从程序中的字符串输入;
PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。
相应的也有不同类型的 InputStream 输入流对应于不同的数据源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流:
Socket 用于套接字;
URLConnection 用于 URL 连接。
这两个类使用 getInputStream() 来读取数据。
相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。

⑸ java如何读取InputStream中的字符串

你可以参考我的例子:
FileInputStream in = new FileInputStream(new File("D:\\Users\\Administrator\\Desktop\\1.txt"));
FileOutputStream out = new FileOutputStream(new File("D:\\Users\\Administrator\\Desktop\\2.txt"));
try
{
int byteread = 0; // 读取的字节数
byte[] buffer = new byte[1024];
while ((byteread = in.read(buffer)) != -1) {
out.write(buffer, 0, byteread);
}
}catch (Exception e)
{
e.printStackTrace();
}finally {
in.close();
out.close();
}

⑹ java怎么获取inputstream的大小

据指定文件创建FileInputStream,调用available方法返回文件大小,容量为byte
File file = new File("d:\hello.gif");
FileInputStream fis = null;
try{
fis = new FileInputStream(file);
System.out.println("文件size:"+String.valueOf(fis.available()/1000)+"k");
}catch(IOException e1){
System.out.println("IO出错!");
}
}catch(FileNotFoundException e2){
System.out.println("找不到指定文件");
}

⑺ java中DataInputStream如何读取我们控制台的字符串

java中DataInputStream使用构造参数,使用bufferreader,输入参数system.in就可以读取控制台的字符串,如下代码:

importjava.io.BufferedInputStream;
importjava.io.DataInputStream;
importjava.io.IOException;

publicclassceshi{
publicstaticvoidmain(String[]args){

DataInputStreamin=newDataInputStream(newBufferedInputStream(
System.in));//新建DateInputSteam,接收控制台的信息
Strings;
try{
while((s=in.readLine()).length()!=0)
System.out.println(s);//读取控制台信息,并打印出来
//
}catch(IOExceptione){
e.printStackTrace();
}

}

}

运行结果如下:

⑻ java读取文件时,InputStream的read(byte[])方法的byte[]的长度不知如何设置,请教大虾们

那个长度应该只是缓冲区而已,应该不影响结果的。我做的时候一般都设置为1024,即1KB
这个是我部分的成功代码
inputStream = new BufferedInputStream(new FileInputStream(
downloadFile));
outputStream = new BufferedOutputStream(response
.getOutputStream());
byte[] buffer = new byte[1024];
int readIndex;
while (-1 != (readIndex = inputStream.read(buffer, 0,
buffer.length))) {
outputStream.write(buffer, 0, readIndex);
}

⑼ Java 的 inputStream 读取文本内容

import java.io.*;

public class Test{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("info.txt")));
String s;
try{
while((s=br.readLine()).length()!=0){
String[] ss = s.split("\\s+");
String no = ss[0];
String name = ss[1];
int grade = Integer.parseInt(ss[2]);
System.out.println("学号:"+no+" "+"姓名:"+name+" "+"成绩:"+grade);
}
}catch(Exception e){}
br.close();
}
}

这边按你的要求,学号,姓名和分数都存储到对应的变量当中了。
InputStream有使用,但还是转换成了Reader。

还有一种方法是使用ObjectInputStream和ObjectOutputStream,前提是你的文本文件的内容是空的,然后将对象写入,如果要读,那么再进行读操作。这种方式存储在文件中的内容是杂乱无章的,并不是按照:
学号 姓名 成绩
这种格式来进行存储的,但是它确实能够读取一个一个的对象。

⑽ java中 为什么我用输入流 inputStream 读取的都是问号

修改“android.txt”文件的编码为jdk编码。

热点内容
sql的decode 发布:2025-01-17 01:01:01 浏览:4
系数参数配置什么意思 发布:2025-01-17 00:34:03 浏览:755
台湾免费服务器云主机 发布:2025-01-17 00:29:07 浏览:870
c语言sizeofchar 发布:2025-01-17 00:29:01 浏览:469
安卓手机的云备份在哪里能找到 发布:2025-01-17 00:14:12 浏览:472
诈骗的脚本 发布:2025-01-16 23:51:27 浏览:315
电脑配置有点低怎么玩和平精英 发布:2025-01-16 23:46:14 浏览:819
ipfs分布式服务器是什么币种 发布:2025-01-16 23:32:29 浏览:992
android动态icon 发布:2025-01-16 23:03:12 浏览:605
优酷电脑缓存在哪 发布:2025-01-16 22:58:29 浏览:298