java151-字节输出流

简介: java151-字节输出流
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;//返回对象
         }
     }测试类
    public class test96 {
         public static void main(String[] args){
             String filePath="e:/4.bat";
             FileManagerChar.binaryOutStream( filePath );
         }
     }

image.png

相关文章
|
Java
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
340 0
|
算法 Java 程序员
火爆Boss直聘的2023最牛字节Java面试手册!助你狂拿千份offer!
当下程序员现状 根据一些调查报告,可以了解到当下程序员的现状。 首先,从年龄分布来看,年轻的程序员占据了主导地位。 30岁以下的开发者占比最高,为81%,而40岁以上的开发者仅占3%。 这意味着,程序员这个行业在一定程度上是年轻化的,同时也面临着一些中年转行或者技术更新换代的问题。 在性别方面,男性程序员的比例在90%以上,女性程序员的比例较低。 这可能和传统观念中将程序员视为男性职业有关。然而,随着技术的普及和女性对计算机科学的兴趣逐渐提高,女性程序员的比例也在逐渐增加。 从职业发展来看,程序员的职业发展相对较慢。 虽然程序员的薪资普遍较高,但是工作压力也很大,需要不断学习和更
386 0
|
存储 消息中间件 算法
字节面试的这道Java面试题各位能答上来吗:谈谈你对时间轮的理解?
一位工作了 7 年的程序员,去字节面试,被问到时间轮的问题。他说这个问题超出了他的知识面,自己也在网上也找了一些文章学习,但还是理解得不是很深刻。他希望让我出一期关于时间轮的面试题解析。今天,就给这位粉丝安排。
225 1
Java系列之 字符串和字节互转
这篇文章是关于Java中字符串和字节之间互转的方法,包括使用`getBytes()`方法将字符串转换为字节数组,以及使用String构造方法将字节数组转换回字符串。
|
消息中间件 Java 关系型数据库
宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7
宅家里一个月,“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢?小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理!内容包括: kafka面试题及解析18道 ZooKeeper面试题及解析28道 Linux 面试真题及解析45道 MySQL面试真题及解析50道 springboot面试真题及解析22道 微服务面试真题及解析50道 mybatis面试真题及解析27道 readis面试真题及解析40道 好好学习将这些面试题都吃透,让你金九银十不再慌张。
232 0
|
缓存 Java 数据处理
|
分布式计算 Java 调度
MaxCompute产品使用合集之使用Tunnel Java SDK上传BINARY数据类型时,应该使用什么作为数据类字节
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
127 0
|
消息中间件 安全 前端开发
字节面试:说说Java中的锁机制?
Java 中的锁(Locking)机制主要是为了解决多线程环境下,对共享资源并发访问时的同步和互斥控制,以确保共享资源的安全访问。 锁的作用主要体现在以下几个方面: 1. **互斥访问**:确保在任何时刻,只有一个线程能够访问特定的资源或执行特定的代码段。这防止了多个线程同时修改同一资源导致的数据不一致问题。 2. **内存可见性**:通过锁的获取和释放,可以确保在锁保护的代码块中对共享变量的修改对其他线程可见。这是因为 Java 内存模型(JMM)规定,对锁的释放会把修改过的共享变量从线程的工作内存刷新到主内存中,而获取锁时会从主内存中读取最新的共享变量值。 3. **保证原子性**:锁
177 1
使用java字节输入流读取文件
使用java字节输入流读取文件
123 0
|
Java 关系型数据库 应用服务中间件
阿里最新春招面经,腾讯/美团/字节1万道Java中高级面试题
又是一年过去了,职场的积雪还没有消融,又迎来了一次大考。疫情还没完全过去,大家强打起精神,相互问好致意,眼角却满是疲惫...