java IO流的写入(output)

write(b);

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Main {
    public static void main(String[] args) throws IOException {
        int k = 0;
        FileOutputStream fo = new FileOutputStream("files");//注意:这里要加上“”,然后再写文件名,创建文件
        //注意 fileInputStream("")里面  需要加双引号
        //+然后创建的这个是相对路径,
        //如果是读取,它就会默认地查找在IDEA的一个project目录下面;
            //如果是创建,这个Main类是在src下面的,所以创建的files文件在src下面
        //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        //然后创建数组
        byte[] b = {48,49,50,51,97,100};
        //好了,byte数组建好了,怎么把它传入呢?
        //利用write方法
        fo.write(b);//write的特点:将原文件清空,再重新写入。
        System.out.println();//没有作用
        fo.write(b,0,3);//这里是将 前三个字节,再写入到后面

    }
 }

结果如下
0123ad012
write(b,0,3)是在后面跟着写的。而实际上write在写入一个文件的时候,会把那个文件先清空
input output是对于所写的Java来说的
实际上,input是获取(进入)
output写出去(输出)到文本文件里

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Main {
    public static void main(String[] args) throws IOException {
        int k = 0;
        FileOutputStream fo = new FileOutputStream("files");//注意:这里要加上“”,然后再写文件名,创建文件
        //注意 fileInputStream("")里面  需要加双引号
        //+然后创建的这个是相对路径,
        //如果是读取,它就会默认地查找在IDEA的一个project目录下面;
            //如果是创建,这个Main类是在src下面的,所以创建的files文件在src下面
        //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        //然后创建数组
        byte[] b = {48,49,50,51,97,100};
        //好了,byte数组建好了,怎么把它传入呢?
        //利用write方法
        //fo.write(b);//write的特点:将原文件清空,再重新写入。
        System.out.println();//没有作用
        fo.write(b,0,3);//这里是将 前三个字节,再写入到后面

    }
 }

这里将write(b)注释掉了
files的结果如下:
012

+++++++++++++++++++++++++++++++++++++++++++++++

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Main {
    public static void main(String[] args) throws IOException {
        int k = 0;
        FileOutputStream fo = new FileOutputStream("files");//注意:这里要加上“”,然后再写文件名,创建文件
        //注意 fileInputStream("")里面  需要加双引号
        //+然后创建的这个是相对路径,
        //如果是读取,它就会默认地查找在IDEA的一个project目录下面;
            //如果是创建,这个Main类是在src下面的,所以创建的files文件在src下面
        //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        //然后创建数组
        byte[] b = {48,49,50,51,97,100};
        //好了,byte数组建好了,怎么把它传入呢?
        //利用write方法
        //fo.write(b);//write的特点:将原文件清空,再重新写入。
        System.out.println();//没有作用
        //fo.write(b,0,3);//这里是将 前三个字节,再写入到后面
        fo.write(b,0,b.length);
    }
 }

好了,这下直接b.length,files内容如下:
0123ad

这样也可以输出了

刚才又去试了一下,如果输入的是sout(b,1,b.length);那么什么也打印不了!!!!!
就是那么离谱!
换成2,b.length也是…

追加在后面,就不会覆盖文件了

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Main {
    public static void main(String[] args) throws IOException {
        int k = 0;
        FileOutputStream fo = new FileOutputStream("files",true);//注意点:先打,再打true

        byte[] b = {48,49,50,51,97,100};
        fo.write(b);
    }
 }

注意点:先打 逗号,再打true就行了

files的结果:
aajskfhsjdLAKAMSDA
DAKLDJLSAKDA
SAKDLASDKA//这堆是我乱按的。
0123ad//追加在后面了

所以只要逗号+true就可以追加了
+++++++++++++++++++++++++++++++++++++++++++++++++++++

这样一个个地打ASCII码太慢了,怎么才能直接输入字符串呢?s.getBytes();方法。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

class Main {
    public static void main(String[] args) throws IOException {
        int k = 0;
        FileOutputStream fo = new FileOutputStream("files",true);//注意点:先打,再打true
        String s;
        s="asflasjdaldalkjfahwkjaksldjak";
        byte[] b = s.getBytes();//
        //再写一边:byte b = s.getBytes();
        fo.write(b);
    }
 }

输出结果:
aajskfhsjdLAKAMSDA
DAKLDJLSAKDA
SAKDLASDKA
0123adasflasjdaldalkjfahwkjaksldjak

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不惭_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值