18.6.3 格式化的内存输出

下边展示了如何利用DataInputStream和ByteArrayInputStream从字符串一个个字节地读入数据

第一个例子用EOF异常来判断文件读到末尾:

package com.cnsuning.file;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class FormattedMemoryInput {

	public FormattedMemoryInput() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DataInputStream input = new DataInputStream(new ByteArrayInputStream(BufferInputFile.read("D:\\work\\会员账户管理\\sales_svn.txt").getBytes()));
		try {
			while(true)
			System.out.print((char)input.readByte());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

第二个例子利用available方法判断文件是否结束, available是DataInputStream从FilterInputStream继承, 会返回不受阻塞情况下下一次能读入的字节数, 需要注意的是, 阻塞的情况取决于输入流, 不同的输入流的情况是不同的, 不一定返回零就表示到了末尾, 所以需要谨慎使用.

package com.cnsuning.file;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class FormattedMemoryInput {

	public FormattedMemoryInput() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DataInputStream input = new DataInputStream(new ByteArrayInputStream(BufferInputFile.read("D:\\work\\会员账户管理\\sales_svn.txt").getBytes()));
			try {
				while(0


你可能感兴趣的:(JAVA,thinking,in,java,学习笔记)