zoukankan      html  css  js  c++  java
  • 向文件输出数据的输出字节流

      1 package com.outputstream;
      2 
      3 import java.io.File;
      4 import java.io.FileInputStream;
      5 import java.io.FileNotFoundException;
      6 import java.io.FileOutputStream;
      7 import java.io.IOException;
      8 import java.io.InputStream;
      9 import java.util.Arrays;
     10 
     11 /*
     12 输出字节流:
     13 
     14 --------| OutputStream 是所有输出字节流 的父类。  抽象类
     15 -----------| FileOutStream 向文件输出数据的输出字节流。
     16 
     17 FileOutputStream如何使用呢?
     18     1. 找到目标文件
     19     2. 建立数据的输出通道。
     20     3. 把数据转换成字节数组写出。
     21     4. 关闭资源
     22 
     23 FileOutputStream要注意的细节:
     24     1. 使用FileOutputStream 的时候,如果目标文件不存在,那么会自动创建目标文件对象。 
     25     2. 使用FileOutputStream写数据的时候,如果目标文件已经存在,那么会先清空目标文件中的数据,然后再写入数据。
     26     3.使用FileOutputStream写数据的时候, 如果目标文件已经存在,需要在原来数据基础上追加数据的时候应该使用new FileOutputStream(file,true)构造函数,第二参数为true。
     27     4.使用FileOutputStream的write方法写数据的时候,虽然接收的是一个int类型的数据,但是真正写出的只是一个字节的数据,只是
     28     把低八位的二进制数据写出,其他二十四位数据全部丢弃。
     29      00000000-000000000-00000001-11111111   511
     30      11111111---> -1 
     31 */
     32 //使用字节数组把数据写出。
     33 /*class Write{
     34     public static void writeTest() throws IOException{
     35         //找到目标文件
     36         File file = new File("D://aa.txt");
     37         //创建目标文件
     38         file.createNewFile();
     39         //建立数据通道
     40         FileOutputStream inputStream= new FileOutputStream(file,true);
     41         String str = "
    你好,你在干嘛";//如果想存入数据进行换行的话加一个"
    
    "既可以
     42         //把字符串转换为字符数组
     43         inputStream.write(str.getBytes());
     44         inputStream.close();
     45         
     46     }
     47 }
     48 
     49 public class Demo1 {
     50 
     51     public static void main(String[] args) throws IOException {
     52         // TODO Auto-generated method stub
     53 
     54         Write write = new Write();
     55         write.writeTest();
     56     }
     57 
     58 }
     59 */
     60 
     61 
     62 /*4.使用FileOutputStream的write方法写数据的时候,虽然接收的是一个int类型的数据,但是真正写出的只是一个字节的数据,只是
     63 把低八位的二进制数据写出,其他二十四位数据全部丢弃。
     64  00000000-000000000-00000001-11111111   511
     65 */
     66 
     67 
     68 //  写入的一各方法
     69 class Write{
     70     public static void writeTest(){
     71 
     72         File  file = new  File("D://bb.txt");
     73         FileOutputStream fileOutputStream = null;
     74         try {
     75              fileOutputStream = new FileOutputStream(file);
     76             fileOutputStream.write(511);
     77         } catch (FileNotFoundException e) {
     78             e.printStackTrace();
     79         }catch (IOException e){
     80             e.printStackTrace();
     81         }finally{
     82             if(fileOutputStream != null){
     83                 try {
     84                     fileOutputStream.close();
     85                 } catch (IOException e) {
     86                     e.printStackTrace();
     87                 }
     88             }
     89         }
     90         
     91     }
     92 }
     93 //  读取数据的一个方法
     94 class Read extends Write{
     95     public static void readTest(){
     96         Write write = new Write();
     97         write.writeTest();
     98         File  file = new  File("D://bb.txt");
     99         InputStream inputStream = null;
    100         try {
    101             inputStream = new FileInputStream(file);
    102             byte[] bs = new byte[4];
    103             int length = inputStream.read(bs);
    104             System.out.println("内容是,"+Arrays.toString(bs));
    105             
    106         } catch (FileNotFoundException e) {
    107             e.printStackTrace();
    108         } catch (IOException e){
    109             e.printStackTrace();
    110         }finally{
    111             if(inputStream != null){
    112                 try {
    113                     inputStream.close();
    114                 } catch (IOException e) {
    115                     // TODO Auto-generated catch block
    116                     e.printStackTrace();
    117                 }
    118             }
    119         }
    120         
    121     }
    122 }
    123 public class Demo1 {
    124 
    125     public static void main(String[] args) throws IOException {
    126     
    127         Read read = new Read();
    128         read.readTest();
    129     }
    130 }
  • 相关阅读:
    JS(五)
    typescript(02)
    typescript(01)
    opensuse15.1字符界面下配置网络
    docker 再次学习
    load dll get last error 14001 Error: The Side-by-Side configuration information for XXXX.DLL contains errors. sxstrace.exe (14001).
    DRF序列化与反序列化
    《流畅的python》:生成字典的几种方式
    《流畅的python》:bisect来管理已排序的序列
    《流畅的python》:由*初始化一个由列表组成的列表
  • 原文地址:https://www.cnblogs.com/fujilong/p/4703269.html
Copyright © 2011-2022 走看看