java150-文本缓冲流

简介: java150-文本缓冲流
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 test95 {
         public static void main(String[] args){
             File file=new File( "e:/3.txt" );
             FileManagerChar.useBufferReader( file );
         }
     }

image.png

相关文章
|
JavaScript 前端开发 Java
java调用js实现富文本过滤
java调用js实现富文本过滤
149 0
|
1月前
|
人工智能 缓存 自然语言处理
Java与多模态AI:构建支持文本、图像和音频的智能应用
随着大模型从单一文本处理向多模态能力演进,现代AI应用需要同时处理文本、图像、音频等多种信息形式。本文深入探讨如何在Java生态中构建支持多模态AI能力的智能应用。我们将完整展示集成视觉模型、语音模型和语言模型的实践方案,涵盖从文件预处理、多模态推理到结果融合的全流程,为Java开发者打开通往下一代多模态AI应用的大门。
311 41
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
860 5
|
存储 缓存 Java
Java中的缓冲流提升I/O性能,通过内存缓冲区减少对硬件访问
【6月更文挑战第22天】Java中的缓冲流提升I/O性能,通过内存缓冲区减少对硬件访问。`BufferedInputStream`和`BufferedOutputStream`用于字节流,缓存数据批量读写。`BufferedReader`和`BufferedWriter`处理字符流,支持按行操作。使用后务必关闭流。
183 3
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
XML Java 数据格式
Java用xpdf库获取pdf文件的指定范围文本内容
Java用xpdf库获取pdf文件的指定范围文本内容
236 1
|
存储 缓存 Java
面试官:Java中缓冲流真的性能很好吗?我看未必
【6月更文挑战第9天】面试官:Java中缓冲流真的性能很好吗?我看未必
186 3
【JAVA学习之路 | 进阶篇】节点流与缓冲流(处理流之一)
【JAVA学习之路 | 进阶篇】节点流与缓冲流(处理流之一)
|
存储 安全 Java
Java一分钟:缓冲流提升读写效率
【5月更文挑战第11天】Java I/O的缓冲流通过内存缓冲区提升读写性能,实现批量处理和预读写。注意避免缓冲区溢出、忘记刷新和关闭以及数据同步问题。示例展示了字节和字符缓冲流在文件复制中的应用,降低磁盘I/O次数,提高效率。熟练掌握缓冲流使用有助于优化Java程序的I/O性能。
407 2
|
存储 搜索推荐 算法
Java中的文本搜索与全文检索引擎
Java中的文本搜索与全文检索引擎