java代码字节流读一行 java 读取字节流

java字节流 一次可以读一行 字符流 一次读一个是吗

JAVA字节流

目前创新互联建站已为超过千家的企业提供了网站建设、域名、虚拟主机绵阳服务器托管、企业网站设计、槐荫网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

是每次从文件中读取单个字节

字符流是每次读出1个字符

相当于每次读出2个字节

FileInputStream

fs=new

FileInputStream(路径);

这是一个字符流

InputStreamReader

ir=new

InputStreamReader(

fs)

这是一个字符流

fs

为字节流

这个类就是把字节流转化为字符流;

字符流

就是为了方便读取文字和符号的

都知道中文汉字要2个字节才能存储

如果一次读出1个字节

在转化为中文

就会出乱码了

这些问题你都可以通过查询API文档找到答案的

Java编程:如何一行一行读取TXT文档?

用BufferedReader的这个类,其中嵌套的十一个输入流,然后用其中的readLine()方法

java IO流读文件能不能得到行数

理论上说是不能直接得到的,因为最原始的IO流是字节流也就是说一次只能读到一个字节的数据,这里面根本就没有行数之说;此外,即使使用缓冲流最多也就是每次读进一行已,如果想要得到文件的行数就得等文件读完才知道。

java io 字节流如何读取一行数据,我要一行一行的读取数据,因为数据都是按位算的,我要用字节流读取一行,

字节是不存在行不行这个概念的,不过你可以每次读取固定长度

字符流可以一行一行的读取数据

使用java的输入,输出流将一个文本文件的内容按行读出,每读一行就顺序添加行号,并写入到另一个文件

代码如下:

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

public class App {

public static void main(String[] args) throws FileNotFoundException, IOException {

try (

FileInputStream inputStream = new FileInputStream(new File("d:\\temp\\abc.txt"));

InputStreamReader streamReader = new InputStreamReader(inputStream);

BufferedReader reader = new BufferedReader(streamReader);

FileOutputStream outputStream = new FileOutputStream(new File("d:\\temp\\output.txt"));

OutputStreamWriter streamWriter = new OutputStreamWriter(outputStream);

BufferedWriter writer = new BufferedWriter(streamWriter);

) {

int count = 1;

String line = null;

while ((line = reader.readLine()) != null) {

writer.write(count++ + ": " + line);

writer.newLine();

}

}

System.out.println("done.");

}

}

字节流能不能一行行的读取数据? 怎样设置字符流读取的大小?

可以,首先你要了解一下什么是字节流,什么是字符流。

字节流的输入输出都是以字节为基本单位的,即都是0101这样的东西。没有格式,前台和后台通过相关的约定来知道怎么转码。 而字符流是前提条件己知的就是输入输出的字符。

因为字符流是以文本字符为基础的,所以当然就有读一行文本这样的函数了。

而字节流没有文本的概念,就没有这个函数。

字节流是InputStream/outputStream, 而字节流一般是reader/writer

但是两者还是可以转换的。 如果你把一个InputSteram转成了reader ,那就可以利用reader中的readline()方法了:

请看代码:

InputStream is = XXXXXX; //你前面己经得到的inputstream 字节流

InputStreamReader reader = new InputStreamReader(is);//先转成reader

BufferedReader breader=new BufferedReader(reader); //再转成BufferedReader

String oneLine = breader.readLine();//利用reader中的readline()

System.out.println(oneLine);

请注意,前提条件必须是我前面己经说过的,这个字节流中的字节其实就是原来由文本转成字节的。比如后台是这样写的:

byte[] bytes = yourTextContent.getBytes("utf-8"); //先把文字内容转成了utf-8编码的字节数组,然后输出到客户端,所以这是字节流。但内容其实是文本。这样客户端才可以用reader来读。否则是乱码

outputStream.write(bytes);

outputStream.flush();

另外: String oneLine = breader.readLine();可以放在一个循环语句中,每次读一行,读完一行就检测一下是否读到空或文件尾, 如果是跳出循环,这样就可以读完全部的流,每次以读一行为单位。


当前文章:java代码字节流读一行 java 读取字节流
文章源于:http://ybzwz.com/article/hgcsjo.html