开发者

Java之通过OutputStream写入文件与文件复制问题

开发者 https://www.devze.com 2023-04-12 10:20 出处:网络 作者: 程序员大阳
目录通过OutputStream写入文件与文件复制1.知识点2.写入文件示例3.文件复制示例Java写入文件问题(FileOutputStream的使用)总结通过OutputStream写入文件与文件复制
目录
  • 通过OutputStream写入文件与文件复制
    • 1.知识点
    • 2.写入文件示例
    • 3.文件复制示例
  • Java写入文件问题(FileOutputStream的使用)
    • 总结

      通过OutputStream写入文件与文件复制

      1.知识点

      1,首先不管是InputStream读read,还是OutputStream写write,都支持读写一定长度的byte[]。

      2,当然,还支持一个字节一个字节的读写,那么一个字节一个字节的读写,读出来的字节和写入的字节都是用的int类型的参数。

      3,int参数只会使用它的8个二进制位,也就是说类似于将int强行转换为byte,我感觉很无聊的设计,还不如直接用byte作为参数,这样搞是因为int太火吗?

      4,所以所谓的复制,就是把所有的字节读出来,然后写入文件即可。

      2.写入文件示例

      写入对象FILE_FOR_WRITE中

      //工具类
      package com.maoge.stream;
      import java.io.File;
      public class StreamUtils {
       //用于定义每次读取的长度
       public static final int BUFFER_LENGTH=512;
       //文件对象
       public static File FILE_FOR_READ;
       public static File FILE_FOR_WRITE;
       static{
        FILE_FOR_READ=new File("C:\\test.txt");
        FILE_FOR_WRITE=new File("C:\\result.txt");
       }
      }

      写入过程

      package com.maoge.stream;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.OutputStream;
      public class OutputStreamDemo {
       public static void main(String[] args){
        writeToFile();
       }
       public static void writeToFile(){
        byte buffer[]=buffer=new String("hello world!").getBytes();
        OutputStream out=null;
        androidtry {
         out = new FileOutputStream(StreamUtils.zLcSuFILE_FOR_WRITE);
         out.write(buffer, 0, buffer.length);
        } catch (Exception ex) {
         System.out.println(ex.toString());
        }finally{
         try {
          out.close();
         } catch (IOException ioEx) {
          System.out.println(ioEx.toString());
         }
        } 
       }
      }

      3.文件复制示例

      直接演示复制图片,因为图片也是二进制位组成的

      源文件test.jpg这个需要找个图片,目的文件result.jpg这个是复制后生产的

      //工具类
      package com.maoge.stream;
      import java.io.File;
      public class StreamUtils {
       //用于定义每次读取的长度
       public static final int BUFFER_LENGTH=512;
       //文件对象
       public static File FILE_FOR_READ;
       public static File FILE_FOR_WRITE;
       static{
        FILE_FOR_READ=new File("C:\\test.jpg开发者_Python开发");
        FILE_FOR_WRITE=new File("C:\\result.jpg");
       }
      }

      复制过程,该方法是OutputStreamDemo类的静态方法。

      public static void fileCopy(){
        FileInputStream in=null;
        FileOutputStream out=null;
        try {
         in=new FileInputStream(StreamUtwww.devze.comils.FILE_FOR_READ);
         out=new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
         int c;
         while((c=in.read())!=-1)
          out.write(c);
        } catch (Exception ex) {
         System.out.println(ex.toString());
        }finally{
         try {
          in.close();
         } catch (IOException ioEx) {
          System.out.println(ioEx.toString());
         }
         try {
          out.close();
         } catch (IOException ioEx) {
          System.out.println(ioEx.toString());
         }
        }
       }

      java写入文件问题(FileOutputStream的使用)

      实现在控制台写入相关文字,并添加到指定的文件中,并实现读取文件内容

      import java.io.FileInputStream;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.util.Scanner;
      
      public class Fileout {
       Scanner inScanner = new Scanner(System.in);
       public void f(String address) throws IOException
       {
       
       FileOutputStream out=new FileOutputStream(address, true);
       String buf;
       System.out.println("请输入");
       buf= inScanner.nextLine();
       byte buy[]=buf.getBytes();
       out.write(buy);
       
       FileInputStream phpfin=new FileInputStream(address); 
       byte[] bs=new byte[1024]; 
       int count=0; 
      
       编程客栈while((count=fin.read(bs))>0)    
       {
       
        
        String str=new String(bs,0,count); //反复定义新变量:每一次都 重新定义新变量,接收新读取的数据
      
        System.out.println(str);  //反复输出新变量:每一次都 输出重新定义的新变量
       }
       fin.close();
       }
       public static void main(String[] args) throws IOException {
        
        Fileout out=new Fileout();
        out.f("f://student.txt"); 
       }
      }

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号