Java输入输出流

File类

  • 在Java中,使用java.io.File类对文件进行操作。
package File;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
public class FileTest {
    public static void main(String[] args) throws IOException {
        /*
        todo 创建File对象
        * 1.File file = new File("E:\\Java\\javafile.txt");
        * 2.File file = new File("E:\\Java","javafile.txt");
        * 3.File file = new File("E:\\Java");
        *   File file1 = new File("javafile.txt");
         */
        File file = new File("E:\\Java\\javafile.txt");
        /*
        todo 判断是否为目录
        * isDirectory()
        * 判断是否为文件
        * isFile()
        * 返回值都为布尔类型
         */
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
//       todo 创建文件
        File file1 = new File("E:\\Java", "HashSet");
//        判断目录是否存在
        if (!file1.exists()){
//            创建Hashset目录
            file1.mkdir();
//            创建多级目录使用
            file1.mkdirs();
        }
//       todo 创建文件
        if (!file.exists()){
            try {
                file.createNewFile();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

绝对路径与相对路径

方法说明
isAbsolute()判断是否是绝对路径
getPath()获取相对路径
getAbsolutePath()获取相对路径获取绝对路径
getName()获取文件名

字节流

  • 字节输入流:InputStream
  • 文件输入流:FileInputstream
  • 管道输入流:PipedInptStream
  • 过滤器输入流:FilterInputStream
    - 回压输入流:PushbackInputStream
    - 缓冲输入流:BufferedInputStream
    - 数据输入流:DataInputStream
  • 对象输入流:ObjectInputStream
  • 顺序输入流:SequenceInputSream
  • 字节数组输入流:ByteArrayInoutStream
  • 缓冲字符输入流:StringBufferInputStream
  • 字节输出流:OutputStream
  • 文件输出流:FileOutStream
  • 管道输出流:PipedOutStream
  • 过滤器输出流:FilterOutStream
    • 格式化输出流:PrintStream
      - 缓冲输出流:BufferedOutStream
    • 数据输出流:DataOutStream
  • 对象输出流:ObjectOutStream
  • 字节数组输出流:ByteArrayOutStream

FileInputStream

  • 从文件系统中的某个文件中或得输入字节
  • 用于读取诸如图像数据之类的原始字节流
方法名描述
public int read()从输入流中读取一个数据字节
pubilc int read(byte[] b)从输入流中将最多b.lengthge字节的数据读入一个byte数组中
public int reas(byte[] b,int off,int len)从输入流中将最多len个字节个数据读入byte数组中
pubilc void close()关闭此文件输入流并释放与此流有关的所有系统资源

如果返回值为-1.则表示已经达到了文件末尾

FileOutputStream

方法名描述
public int write()将制定字节写入此文件输出流
pubilc int write(byte[] b)将b.lengthge字节从指定byte数组中写入此文件中
public int write(byte[] b,int off,int len)将指定byte数组中从偏移量off来时len个字节写入此文件输出流
pubilc void close()关闭此文件输入流并释放与此流有关的所有系统资源

缓冲流

  • 缓冲输入流:BufferedInputStream
  • 缓冲输出流:BufferedOutStream
package File;
import java.io.*;
public class Buffered {
    public static void main(String[] args) {
        try{
            FileOutputStream fileOutputStream = new FileOutputStream("E:\\Java\\javafile.txt",true);//表示以追加的方式写入,默认为false
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            FileInputStream fileInputStreamnew = new FileInputStream("E:\\Java\\javafile.txt");
            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStreamnew);
            bufferedOutputStream.write(97);
            bufferedOutputStream.write('a');
            bufferedOutputStream.flush();
            System.out.println(bufferedInputStream.read());
            System.out.println((char)bufferedInputStream.read());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字符流

  • 字符输入流:Reader
  • BuffeerReader
    • LineNumberReader
  • CharArrayReader
  • StringReader
  • InputStreamReader
    • FileReader
  • PipedReader
  • FilterReader
    • PushbackReader
  • 字符输出流:Writer
  • BuffeerWriter
  • CharArrayWriter
  • StringWriter
  • OutputStreamWriter
    • FileWriter
  • PipedWriter
  • FilterWriter

字节字符转换流

  • InputStreamReader
  • OutputStreamWriter
FileInputStream fis = new FileInputStream("imooc.txt");
InputStreamReader isr = new InputSreamReader(fis);
FileOutputStream fos = new FileOutputStream("imooc1.txt");
OutputSteamWriter osw = new OutputStreamWriter(fos);

其他字符流

  • 字符流的读文件类:FileWirte
  • 字符流的写文件类:FileReader

对象序列化

步骤:
1.创建一个类,继承Serializable接口
2.创建对象
3.将对象写入文件
4.从文件读取对象信息
对象的读写涉及的两个类:

  • 对象输入流ObjectOutputStream
  • 对象输出流ObjectInputStream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值