//读取一个字节并以整数的形式返回(0-255)
//如果返回-1已到输入流的末尾
int read() throws IOException
//读取一系列字节并存储到一个数组buffer,//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte [] buffer) throws IOException
//读取length个字节
//并存储到一个字节数组buffer,从length位置开始
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte [ ] buffer,int offset,int length)
throws IOException
//关闭流释放内存资源
void close() throws IOException
// 跳过 n个字节不读,返回实际跳过的字节数
long skip(long n) throws IOException
package com.io.liushuaishuai;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo01 {
public static void main(String[] args) throws IOException {
// FileInputStream(String name)
// 通过打开与实际文件的连接来创建一个 FileInputStream ,
// 该文件由文件系统中的路径名 name命名。
FileInputStream fis = new FileInputStream("myIOstream\\fos.txt");
// read() 从该输入流读取一个字节的数据。
/*//第一次读取数据
int i = fis.read();
//System.out.println(i);
System.out.println((char) i);
//第二次读取数据
int k = fis.read();
//System.out.println(i);
System.out.println((char) k);
*/
/*
//到达文件末尾,返回值为-1;
int i = fis.read();
while (i != -1) {
System.out.print((char)i);
i = fis.read();
}
*/
//优化上面的程序
int i;
while ((i = fis.read()) != -1) {
System.out.print((char) i);
}
fis.close();
}
}
不需要人为加换行符
=============================================================================================================================================
字节流复制文本文件
package com.io.liushuaishuai;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamDemo02 {
public static void main(String[] args) throws IOException {
//创建字节输入流对象
FileInputStream fis = new FileInputStream("myIOstream\\fos.txt");
/*
byte[] bys = new byte[5];
//第一次读取数据
int i = fis.read(bys);
System.out.println(new String(bys,0,i));
//第二次读取数据
i = fis.read(bys);
System.out.println(new String(bys,0,i));
i = fis.read(bys);
System.out.println(new String(bys,0,i));
*/
byte[] bys = new byte[1024];
int len;
while ((len =fis.read(bys)) != -1 ) {
System.out.println(new String(bys,0,len));//
String(byte[] bytes, int offset, int length) |
通过使用平台的默认字符集解码指定的字节子阵列来构造新的
String 。
|
---|
}
//释放资源
fis.close();
}
}
字节流复制图片
package com.io.liushuaishuai;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyjpgDemo {
public static void main(String[] args) throws IOException {
//根据数据源创建字节输入流对象
FileInputStream fis = new FileInputStream("C:\\壁纸\\index.jpg");
//创建字节输出流对象
FileOutputStream fos = new FileOutputStream("myIOstream\\index.jpg");
//读取数据
byte[] bys = new byte[1024];
int len;
while ((len = fis.read(bys))!= -1) {
fos.write(bys,0,len);
}
fos.close();
fis.close();
}
}