字节流_FileOutputStream类写出

输出字节流:
------------| OutputStream 此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。 
------------------| FileOutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流
FileOutputSream使用步骤:
    1.找到目标文件
    2.建立数据 的输出通道
    3.把数据输出
    4.关闭资源
    
FileOutputSream要注意的细节:
    1.使用FileOutputStream(File file)写入数据的时候,如果目标文件存在,则在创建FileOutputStream输出通道的时候会自动创建目标文件。
    2.使用FileOutputStream(File file)写入数据的时候,如果目标文件不存在,则在创建FileOutputSream输出通道的时候,则会先清空目标文件中原有的数据,然后再写入数据。
    3.使用FileOutputStream(File file, boolean append)写入数据的时候,是在原来数据基础上追加数据,第二个参数为true。
    4.使用FileOutputStream的write(int i)方法写数据的时候,虽然接收的是一个int类型(int 4字节  32位)的数据,但是真正写出的只是一个字节的数据,只是把低八位的二进制数据写出,其他二十四位数据全部丢弃。
   
   
  1. package com.cn.input;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. /**
  7. * Author:Liu Zhiyong(QQ:1012421396)
  8. * Version:Version_1
  9. * Date:2016年7月24日21:54:03
  10. * Desc:
  11. 输出字节流:
  12. ------------| OutputStream 此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。
  13. ------------------| FileOutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流
  14. FileOutputSream使用步骤:
  15. 1.找到目标文件
  16. 2.建立数据 的输出通道
  17. 3.把数据输出
  18. 4.关闭资源
  19. FileOutputSream要注意的细节:
  20. 1.使用FileOutputStream(File file)写入数据的时候,如果目标文件存在,则在创建FileOutputStream输出通道的时候会自动创建目标文件。
  21. 2.使用FileOutputStream(File file)写入数据的时候,如果目标文件不存在,则在创建FileOutputSream输出通道的时候,则会先清空目标文件中原有的数据,然后再写入数据。
  22. 3.使用FileOutputStream(File file, boolean append)写入数据的时候,是在原来数据基础上追加数据,第二个参数为true。
  23. 4.使用FileOutputStream的write(int i)方法写数据的时候,虽然接收的是一个int类型(int 4字节 32位)的数据,但是真正写出的只是一个字节的数据,只是把低八位的二进制数据写出,其他二十四位数据全部丢弃。
  24. */
  25. public class Demo2 {
  26. public static void main(String[] args) throws IOException {
  27. // writeTest1();
  28. // writeTest2();
  29. writeTest3();
  30. }
  31. public static void writeTest1() throws IOException {
  32. //1.找到目标文件
  33. File file = new File("f:/b.txt");
  34. //2.建立数据 的输出通道
  35. FileOutputStream fileOutputStream = new FileOutputStream(file);
  36. //3.把数据输出
  37. fileOutputStream.write('e');
  38. fileOutputStream.write('o');
  39. fileOutputStream.write('f');
  40. fileOutputStream.write('木');
  41. //4.关闭资源
  42. fileOutputStream.close();
  43. }
  44. //利用字节数组把数据写出
  45. public static void writeTest2() throws IOException {
  46. //1.找到目标文件
  47. File file = new File("f:/b.txt");
  48. //2.建立数据 的输出通道
  49. FileOutputStream fileOutputStream = new FileOutputStream(file, true);//如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
  50. //把数据输出
  51. String data= "\r\nccc请叫我木丁西a";
  52. fileOutputStream.write(data.getBytes());
  53. //关闭资源
  54. fileOutputStream.close();
  55. }
  56. public static void writeTest3() throws IOException {
  57. //1.找到目标文件
  58. File file = new File("f:/b.txt");
  59. //2.建立数据 的输出通道
  60. FileOutputStream fileOutputStream = new FileOutputStream(file);//如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
  61. //把数据输出
  62. String data= "abc";
  63. fileOutputStream.write(data.getBytes(), 0, data.length());
  64. System.out.println(data.length());
  65. //关闭资源
  66. fileOutputStream.close();
  67. }
  68. }
验证问题:使用FileOutputStream的write( int  i)方法写数据的时候,虽然接收的是一个 int 类型( int  4字节  32位)的数据,
    但是真正写出的只是一个字节的数据,只是把低八位的二进制数据写出,其他二十四位数据全部丢弃。
    例如:00000000-00000000-00000001-11111111    ->    11111111  ->   -1  
  
  
  1. package com.cn.input;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.util.Arrays;
  8. /**
  9. * Author:Liu Zhiyong(QQ:1012421396)
  10. * Version:Version_1
  11. * Date:2016年7月25日15:53:18
  12. * Desc:
  13. 验证问题:使用FileOutputStream的write(int i)方法写数据的时候,虽然接收的是一个int类型(int 4字节 32位)的数据,
  14. 但是真正写出的只是一个字节的数据,只是把低八位的二进制数据写出,其他二十四位数据全部丢弃。
  15. 例如:00000000-00000000-00000001-11111111 -> 11111111 -> -1
  16. */
  17. public class Demo3 {
  18. public static void main(String[] args) throws IOException {
  19. writeTest();
  20. readTest();
  21. }
  22. public static void writeTest() throws FileNotFoundException, IOException {
  23. File file = new File("f:/a.txt");
  24. FileOutputStream fileOutputStream = new FileOutputStream(file);
  25. fileOutputStream.write(511);
  26. fileOutputStream.close();
  27. }
  28. public static void readTest() throws IOException{
  29. File file = new File("f:/a.txt");
  30. FileInputStream fileInputStream = new FileInputStream(file);
  31. byte[] buff = new byte[1024];
  32. int length = 0;
  33. while((length = fileInputStream.read(buff)) != -1){
  34. System.out.println(Arrays.toString(buff));
  35. }
  36. fileInputStream.close();
  37. }
  38. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值