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
 
 
- BuffeerReader
- 字符输出流: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
共有 0 条评论