Java中的流 文件字节输入流、输出流

鳄鱼君

发表文章数:642

热门标签

,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java中的流 文件字节输入流、输出流

java.io包下的流可分为16种:
文件专属:java.io.FileInputStream、java.io.FileOutputStream、java.io.FileReader、java.io.FileWriter
转换流(将字节流转换成字符流):java.io.InputStreamReader、java.io.OutputStreamWriter
缓冲流:java.io.BufferedReader、java.io.BufferedWriter、java.io.BufferedInputStream、java.io.BufferedOutputStream
数据流:java.io.DataInputStream、java.io.DataOutputStream
标准输出流:java.io.PrintWriter、java.io.PrintStream
对象流:java.io.ObjectInputStream、java.io.ObjectOutputStream


java.io.FileInputStream文件字节输入流,任何类型的文件都可以采用这个流来读,以字节的方式完成输入的操作,读的操作(硬盘-》内存)

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamTest {
    public static void main(String[] args) {
        FileInputStream file = null;
        byte[] bytes = new byte[100];
        // 创建文件字节流对象
        try {
            file = new FileInputStream("C:\\Users\\xjj eyujun\\Desktop\\个人小空间.txt");
            int i = 0;
            while ((i = file.read(bytes)) != -1) {
                System.out.println(new String(bytes ,0, i));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (file != null) {
                try {
                    file.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


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

public class FileOutputStreamTest {
    public static void main(String[] args) {
        FileOutputStream file = null;
        byte[] bytes = {99,127,123};
        
        String s = "我是中国人";
        byte[] bs = s.getBytes();
        
        try {
//            file = new FileOutputStream("stream.txt");
            // 追加的方式
            file = new FileOutputStream("stream.txt",true);

            file.write(bytes);
            file.write(bs);
            
            file.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (file != null){
                try {
                    file.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

文件复制:

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

public class FileCopy {
    public static void main(String[] args) {
        FileInputStream file1 = null;
        FileOutputStream file2 = null;
        byte[] bytes = new byte[1024 * 1024];

        try {
            // 创建输入流对象
            file1 = new FileInputStream("stream.txt");
            // 创建输出流对象
            file2 = new FileOutputStream("d:\\new_stream.txt");

            int i = 0;
            while ((i = file1.read(bytes)) != -1) {
                file2.write(bytes, 0, i);
            }
            file2.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (file1 != null) {
                try {
                    file1.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (file2 != null) {
                try {
                    file2.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

文件字符输入流:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

// 文件字符输入流 只能读取普通文本
public class FileReaderTest {
    public static void main(String[] args) {
        FileReader file = null;
        try {
            // 创建文件字符输入流
            file = new FileReader("stream.txt");
            char[] chars = new char[4];//一次读取4个字符
            int i = 0;
            while ((i = file.read(chars)) != -1) {
                System.out.println(new String(chars, 0, i));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (file != null) {
                try {
                    file.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

文件字符输出流:

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterTest {
    public static void main(String[] args) {
        FileWriter file = null;
        try {
            // 创建文件字符输出流对象
            file = new FileWriter("new_stream.txt");

            char[] chars = {'我','叫','T','M','D','!'};
            file.write(chars);
            // 第2个字符开始,写4个字符
            file.write(chars,2,4);
            file.write("我叫SDIOANHIDS");
            // 刷新
            file.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (file!=null){
                try {
                    file.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
标签:

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java中的流 文件字节输入流、输出流》 发布于2020-08-17

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

2 + 3 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册