java152-字节缓冲输出流

简介: java152-字节缓冲输出流
import javax.imageio.IIOException;
     import java.io.*;
     import java.util.Date;
     //字符输入流
     public class FileManagerChar {
         public static void readCharFile(File file){
             FileReader fileReader=null;//文本输入流
             if(file.exists()){
                 try {
                     fileReader = new FileReader( file );//基于目标存在的文本文档输出流
                     char[] chs=new char[50];//字符零时缓冲区
                     int count=0;//存储实际读取的字符数量
                     while((count=fileReader.read(chs,0,chs.length))!=-1){
                         String s=new String( chs,0,count );
                         System.out.println( s );
                     }
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         fileReader.close();
                     }catch(IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //使用文本缓冲流读取文件
         public static void useBufferReader(File file){
             FileReader read=null;//基于文件的普通输入流
             BufferedReader br=null;//基于某个reader建立的字符缓冲流
             if(file.exists()){
                 try {
                     read=new FileReader( file );//基于文件建立普通文本输入流
                     br=new BufferedReader( read );//基于某个read建立文本缓冲流
                     char[] chs=new char[25];
                     int count=0;
                     while ((count=br.read(chs,0,chs.length))!=-1){
                         String s=new String( chs,0,count );
                         System.out.println( s );
                     }
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         br.close();
                         read.close();
                         System.out.println( "关闭成功" );
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //字节输出流
         public static void binaryOutStream(String filePath){
             String str="start=E:\\BaiduNetdiskDownload\\baidu6\\1.mp4";
             byte[] bys=str.getBytes();//将字符串转换为字节数组
             OutputStream out=null;
             try {
                  out = new FileOutputStream( filePath);
                  out.write(bys);
             }catch (IOException e){
                 e.printStackTrace();
             }finally {
                 try {
                     out.close();
                     System.out.println( "资源关闭" );
                 }catch (IOException e){
                     e.printStackTrace();
                 }
             }
         }
         //使用字节缓冲输出流
         public static void useBufferedOutput(File file){
             OutputStream out=null;
             BufferedOutputStream bs=null;
             String str="日照香炉生紫烟,\n遥看瀑布挂前川。\n飞流直下三千尺,\n以适应河洛就停";
             byte[] bys=str.getBytes();
         if(file.exists()){
                 try {
                     System.out.println( file.getAbsolutePath() );
                     out = new FileOutputStream( file.getAbsoluteFile()+"/李白诗.doc" );
                     bs=new BufferedOutputStream( out );//基于某个outputstream建立缓冲输出流
                     bs.write( bys ,0,bys.length);//写入目标文件
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         bs.close();
                         out.close();
                     }catch (IOException e) {
                         e.printStackTrace();
                     }
                 }
             }
         }
         //字符输出流bufferwrite
         //file文件存储的目录
         //filename 文件名称
         //content 文件内容
         public static void useBufferedWriter(File fir,String fileName,String content){
             File file=null;
             Writer writer=null;
             BufferedWriter bw=null;
             if(fir.exists()){
                 file=new File(fir,fileName );
                 char chs[]=content.toCharArray();
                 try {
                     writer=new FileWriter( file );
                     bw=new BufferedWriter( writer );//基于Writer实例创建字符缓冲流
                     bw.write(chs);//将char型数组所有内容写入到目标文件中
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         bw.close();
                         writer.close();
                     }catch (Exception e){
                         e.printStackTrace();
                     }
                 }
             }else{
                 //创建目录后写入内容
                 System.out.println( "目标文件目录没找到" );
             }
         }
         public static void copyFile(File target,File dir){
             InputStream in=null;
             OutputStream out=null;
             File copyFile=null;//目标写的文件对象
             if(target.exists()){//判断目标文件是否存在
                 if(!dir.exists()){
                     dir.mkdirs();//如果目标文件不存在,创建目录
                 }
                 try {
                     in = new FileInputStream( target );//基于文件建立输入流
                     String fileName=target.getName();//获取文件源名称
                     //避免文件重名
                     copyFile=new File(dir+"/"+new Date().getTime()+fileName);//基于目标写入文件对象
                     out=new FileOutputStream( copyFile );//基于目标文件建立输出流
                     byte[] bys=new byte[1024];//临时存储字节数据的缓冲区
                     int count=0;//记录读取内容的临时变量
                     while ((count=in.read(bys,0,bys.length))!=-1){
                         System.out.println( "文件赋值读写中,请稍后----" );
                         out.write( bys,0,count );//将临时缓冲区内容写入到目标文件中
                     }
                     System.out.println( "目标赋值完成" );
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         out.close();
                         in.close();
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //emp序列化对象
         //target//序列化对象的目标文件
         //java序列化,将员工对象保存到文件中
         public static void javaSer(Employeee emp,File target){
             OutputStream out=null;
             ObjectOutputStream oos=null;//序列化输出流
             if(emp!=null){
                 try {
                     out = new FileOutputStream( target );
                     oos = new ObjectOutputStream( out );
                     oos.writeObject( emp );//将序列化对象保存到文件中
                 }catch (IOException e){
                     e.printStackTrace();
                 }finally {
                     try {
                         oos.close();
                         out.close();
                     }catch (Exception e){
                         e.printStackTrace();
                     }
                 }
             }
         }
         //反序列化
         public static Employeee deser(File target) {
             InputStream in = null;
             ObjectInputStream ois = null;
             Employeee emp = null;
             if (target.exists()) {
                 try {
                     in = new FileInputStream( target );
                     ois = new ObjectInputStream( in );
                     //进行反序列化
                     Object obj = ois.readObject();
                     emp = obj != null ? (Employeee) obj : null;//如果不为空进行类型转换
                 } catch (IOException e) {
                     e.printStackTrace();
                 } catch (ClassNotFoundException e) {
                     e.printStackTrace();
                 }finally {
                     try {
                         ois.close();
                         in.close();
                     }catch (IOException e){
                         e.printStackTrace();
                     }
                 }
             }
             return emp;//返回对象
         }
     }测试类
    import java.io.File;
     public class test97 {
         public static void main(String[] args){
             File file=new File( "e:/files/" );
             FileManagerChar.useBufferedOutput( file );
         }
     }

image.png

相关文章
|
4月前
|
存储 缓存 Java
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
58 3
|
6月前
|
Java
使用java字节输入流读取文件
使用java字节输入流读取文件
|
Java
Java字节缓冲流
Java字节缓冲流
50 0
|
Java
Java IO流之访问文件的字节输入流FileInputStream和字节输入流FileOutputStream的详解
Java IO流之访问文件的字节输入流FileInputStream和字节输入流FileOutputStream的详解
101 0
|
Java 数据处理
Java IO(File、字节输入输出流、字符输入输出流、打印流)附带相关面试题
1.File类,2.字节输入输出流(InputStream Outputstream),3.Writer与Reader字符输入输出流,4.打印流
93 0
|
存储 缓存 Java
【Java I/O 流】字节缓冲流:BufferedInputStream 和 BufferedOutputStream
缓冲流是一个包装流,在创建缓冲流实例时,需要传入底层真实操作的输入或输出流。其主要的作用就是为了提高读写效率而生的。 今天讲的字节缓冲流有两个:`BufferedInputStream` (字节缓冲输入流)和 `BufferedOutputStream` (字节缓冲输出流)。本文会介绍它们的构造函数和一些常用方法,最后使用真实案例来看下字节缓冲流是如何使用的。
230 0
|
存储 缓存 Java
【Java I/O 流】字节输入输出流:InputStream & OutputStream
本篇介绍字节输入输出流,它们是所有字节流的超类,提供了一些常用方法,我们一起看一下。
86 0
|
存储 缓存 Java
【Java I/O 流】文件字节输入输出流:FileInputStream & FileOutputStream(文件读写案例)
本篇文章主要讲述“文件字节输入流”和“文件字节输出流”两个类的使用,并列举了一些案例,帮助学习。
305 0
Java Nio (三):直接缓冲区 和 非直接缓冲区
Java Nio (三):直接缓冲区 和 非直接缓冲区
Java Nio (三):直接缓冲区 和 非直接缓冲区
|
存储 Java
java IO流详细总结(一、字节输入输出流)
java IO流详细总结(一、字节输入输出流)
238 0
java IO流详细总结(一、字节输入输出流)