`

FileInputStream and FileOutputStream

阅读更多

有两个方法很像可是结果却是不一样的!
类 FileInputStream
java.lang.Object
- java.io.InputStream
    - java.io.FileInputStream

int read()
          从此输入流中读取一个数据字节。放到返回值是读到数据放到 int中的低8位,如果要显示char强转为字符输出。如果已到达文件末尾,则返回 -1。
int read(byte[] b)
          从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。 这个返回值也是int,但这个int表示的是读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。

package com.io;

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

/**
 * 从一从文件中将内容读出到控制台,并写入到另外一个文件
 */
public class TestFileOutputStream {
	public static void main(String[] args){
		FileInputStream fis = null;
		FileOutputStream fos = null;
		int b = 0 ;
		byte[] bytes = new byte[1024];
		try {
			fis = new FileInputStream("src/com/io/TestFileOutputStream.java");
			fos = new FileOutputStream("src/com/io/fileoutput.txt");
/*			while((b=fis.read()) != -1) {
				//将读到的字节强转为字符打印
				System.out.print((char)b);
				//输出到文件
				fos.write(b);
			}*/
			System.out.println("-------------------------------------------");
			while((b=fis.read(bytes)) != -1) {
				//定义一个字符串,接收byte数组长度为b
				String s = new String(bytes, 0, b);
				//将其打印到控制台
				System.out.print(s);
				//再输出到文件
				fos.write(s.getBytes());
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				fis.close();
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics