面向对象
字节流基类
InputStream
OutputStream
/*
写入文件
*/
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test{
public static void main(String...args)throwsIOException{
OutputStream os = new FileOutputStream("C:\\1.Java");
os.write("黑马程序员".getBytes());
os.close();
}
}
/*
第一种读取文件的方法。
对于操作文本文件不支持使用此做法。
*/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
public classTest{
public static void main(String...args) throws IOException{
InputStream is =newFileInputStream("C:\\1.jpg");
for(int by = 0;(by=is.read())!=-1;){
System.out.print(by);
}
is.close();
}
}
/*
第二种读取文件的方法。
对于操作文本文件支持使用此做法。
*/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Test{
public static void main(String...args) throws IOException{
InputStream is = new FileInputStream("C:\\1.Java");
byte []buf = new byte[1024];
for(int len = 0;(len=is.read(buf))!=-1;){
System.out.print(new String(buf,0,len));
}
is.close();
}
}
InputStream
int
available()
返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
/*
第三种方式,如果内存太大会报错。
*/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Test{
public static void main(String...args) throws IOException {
InputStream is =new FileInputStream("C:\\1.Java");
byte[] buf =new byte[is.available()];
is.read(buf);
System.out.println(new String(buf));
is.close();
}
}
IO流(拷贝图片)
/*
思路:
1、用字节读取流对象和图片关联
2、用字节写入流对象创建一个图片文件。用于存储获取到的图片数据
3、通过循环读写,完成数据的存储
4、关闭资源
*/
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test{
public static void main(String...args){
InputStream is =null;
OutputStream os =null;
try{
is =newFileInputStream("C:\\1.jpg");
os =newFileOutputStream("D:\\1.jpg");
byte []buf =new byte[1024];
for(int len=0;(len=is.read(buf))!=-1;){
os.write(buf,0,len);
}
}
catch(IOException e){
System.out.println("读写错误");
}
finally{
try{
if(is!=null)
is.close();
}
catch(IOException e){
System.out.println("读取流关闭失败");
}
finally{
try{
if(os!=null)
os.close();
}
catch(IOException e){
System.out.println("写入流关闭失败");
}
}
}
}