`

Java字节输入流

    博客分类:
  • Java
阅读更多

    学习了一下Java的字节输入流,下面是其使用入门的几个小例子。

 

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class inputStreamTest 
{
	public static void main(String[] args)
	{
		byteArrayInputStream();
		
		fileInputStreamTest();
	}
	
	public static void byteArrayInputStream()
	{
		byte[] buffer = new byte[]{3, -1, 36, -9, 20};
		ByteArrayInputStream in = new ByteArrayInputStream(buffer);
		
//		int data = in.read();
//		while(data != -1)
//		{
			//输出结果为:3  255  36  247  20
//			System.out.print(data + "  ");    
//			data = in.read();
//		}

		byte[] buff = new byte[buffer.length];
		try
		{
			in.read(buff);
			//(需要将前面的部分注释掉)输出结果为:3  -1  36  -9  20 
			for(int i=0; i<buff.length; i++)
				System.out.print(buff[i] + "  "); 
			
		} catch(IOException e)
		{
			e.printStackTrace();
		}
		
		try 
		{
			in.close();
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void fileInputStreamTest()
	{
		System.out.println();
		try 
		{
			//a.txt中内容为:abc中国def
			FileInputStream is = new FileInputStream("C:\\a.txt");
			
			int data = is.read();
			
			//输出结果为:97  98  99  214  208  185  250  100  101  102
			while(data != -1)
			{
				System.out.print(data + "  ");  
				data = is.read();
			}
			
			is.close();
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

     有两点需要解释一下:

 

     对字节数组输入流( ByteArrayInputStream),对于字节类型的-9,二进制为11110111,转换为int类型(int data = in.read();)的二进制形式为00000000 00000000 00000000 11110111,因此字节类型的-9转换为int类型的247,也就会输出247. 对于-1,也是类似的情况,转换为了255.

 

      对文件输入流(FileInputStream),字符"a"、"b"、"c"的GBK编码各占1个字节,分别是97、98、99,而"中"和"国"的GBK编码各占2个字节,分别是214和208,以及185和250,所以才会有上面的输出结果。当然,也可以用read(byte[] buff)方法来读取文件以提高效率。

 

7
2
分享到:
评论

相关推荐

    java 读取字节流

    java 读取字节流的例子,非常好。本例用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区buffer中,再以FileOutStream的write(buffer)方法,将buffer中内容写入文件WriteFile.txt中,程序如下(本例程序放在...

    JAVA输入输出流实验报告

    JAVA中,字节流和字符流的套用,提供IO输入输出的基本语法和步骤

    JAVA IO流缓冲字节流缓冲字符流等流经典代码示例加注释总结.rar

    2、常用21个IO流:FileWriter、FileReader、...3、JAVA IO流经典代码示例,示例从易到难。代码功能涉及字节、字符、字符串、文本文件、图片、音频、视频。演示错误用法和经典用法。 4、代码的结构可查看README文件。

    Java的IO流讲解代码: File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型

    File 类、RandomAccessFile 类、字节流(文件字节流、缓冲字节流、基本数据类型字节流、打印流、对象序列化流、字节数组流)、字符流(缓冲字符流、文件字符流、转换流、格式化输出流、字符数组流) 这份代码源码...

    java IO流 1. 流的概念 2. 输入流和输出流 3. 字符流、字节流 4. 缓冲流 5. 转换流处理流

    java IO流 1. 流的概念 2. 输入流和输出流 3. 字符流、字节流 4. 缓冲流 5. 转换流处理流

    理解Java中字符流与字节流的区别

    和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。  2. 字节流  Java中的字节流处理的基本单位为单个字节,它...

    JAVA输入输出流-字节流篇(什么时候用哪个).doc

    JAVA输入输出流--字节流篇(什么时候用哪个).doc

    java 输入输出流

    介绍有关java常见的输入输出流。包括File类、RandomAccessFile类、字节流与字符流等。

    java中的标准输入输出流

    本文档涵盖了java中标准输入输出流,包含InputStream、OutputStream字节流还有字符流以及对文件的读写操作等

    java字节反冲流copy 文件

    通过在 dos环境 输入 java 地址1 地址2 将 地址一拷贝到地址2

    Java流(文件读写操作)

    – 输入流:只能从中读取字节数据,而不能向其写出数据 – 输出流:只能向其写入字节数据,而不能从中读取数据 • 按照流所处理的数据类型 – 字节流:用于处理字节数据。 – 字符流:用于处理Unicode字符数据。 • ...

    java从输入流中获取数据并返回字节数组示例

    主要介绍了java从输入流中获取数据并以字节数组返回,这是一个常用的方法,以后可以直接拿来用。这种输入流可以来自Android本地,也可以来自网络

    java字节流 字符流学习

    Reader BufferedReader LineNumberReader CharArrayReader FilterReader PushbackReader InputStreamReader FileReader PipedReader StringReader

    Java流总结

    • 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流 读取时,去查了指定的码表。 字节流和字符流的区别: • ...

    java字节与字符

    IO流 输出、输入字节流,并且任意截取字符串的长度,

    JAVA IO流技术

    输入流:数据源到程序(InputStream、Reader读进来) 输出流:程序到目的地(OutPutStream、Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream、OutputStream) 字符流:按照字符读取数据(Reader...

    java的键盘输入

    的流类,主要是:输入流类 InputStream 输出流类 OutputStream Java 系统预先定义好 3 个流对象,静态属性 System.out 标准输出设备:显示器 System.in 标准输入设备:键盘 System.err ...

    java IO流总结.md

    2.数据的流向:输入流、输出流 3.流的角色:节点流、处理流 节点流:直接从数据源或目的地读写数据 处理流:不直接连接到数据源或目的地,而是“连接”在已存在的流(节点流或处理流)之上,通过对数据的...

    JAVA输入与输出 java流基本流程图

    java输入与输出的基本流程图,对字节与字符的操作

Global site tag (gtag.js) - Google Analytics