java-IO流

一、java I/O

在这里插入图片描述
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。

Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。

一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。

Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

二、File类

在这里插入图片描述
在这里插入图片描述
相关代码演示

import java.io.File;
import java.io.IOException;
public class TestFile {
    public static void main(String[] args) {
        File f = new File("a.text");//主要用路径字符串作为参数
        System.out.println(f.isDirectory());
        System.out.println(f.isFile());
        System.out.println(f.length());
        File f2=new File("test/hello");
        System.out.println(f2.isDirectory());
        System.out.println(f2.length());
        System.out.println(f.getName());
        System.out.println(f2.getName());
//        File file = new File("b.text");
//        System.out.println(file.isFile());
//        System.out.println(file.isDirectory());
        //创建文件
//        try {
//            file.createNewFile();//创建文件
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        System.out.println(file.isFile());
        //创建文件夹
        File file2= new File("text/hello/c.txt");
        //获取上一级File对象,递归创建文件夹,在本级创建文件
        File p = file2.getParentFile();//获取上一级File对象
        p.mkdirs();
        try {
            file2.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
//        File f3=new File("hhh/aaa/d.txt");
//        f3.mkdirs();//递归创建文件夹,连最后一级文件也会创建成文件夹
           f.delete();//删除文件
        File f4=new File("e.txt");
        file2.renameTo(f4);
        System.out.println(file2.getPath());
        System.out.println(f4.getAbsoluteFile());
          File file=new File("io/hello/test.text");
          file.getParentFile().mkdirs();
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.length());
    }
}

三、流

在这里插入图片描述
java流的分类
在这里插入图片描述
字节输入流代码

package cn.kgc.kb11;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;

public class TestInputStream {
    public static void main(String[] args) throws Exception {
        FileInputStream fis = null;
        //第二种使用File对象来创建流
//        File f = new File("e.txt");
//        try {
//            //使用路径把文件放入输入流中
            fis = new FileInputStream("e.txt");
//            fis=new FileInputStream(f);//使用文件对象来做参数的构造方法
            int tmp = 0;
//            char[] c= new char[fis.available()];
            while ((tmp = fis.read())> 0) {//如果read的值大于0,则认为读到数据了
                System.out.print((char) tmp);
//                c[i]=(char)tmp;
//                i++
            }
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } finally {
//            try {
                fis.close();
//        System.out.println(Arrays.toString(c));
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
        }
    }

字节输出流代码示范:

package cn.kgc.kb11;

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

public class TestOutPutStream {
    public static void main(String[] args) throws IOException{
        FileOutputStream fos=null;
        String s="\nkb11你们都很帅,唯有常帅常常帅!";
        {
//            try {
//                fos = new FileOutputStream("b.txt");//替换写入
                fos= new FileOutputStream("b.txt",true);
                byte[] b = s.getBytes();
                fos.write(b);
//            } catch (FileNotFoundException e) {
//                e.printStackTrace();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }finally{
//                try {
                    fos.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
            }
        }
    }
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值