java IO文件读写例子(OutputStream,InputStream,Writer,Reader)

本文详细介绍了使用Java进行文件的创建、读取及写入操作,包括字节流和字符流的具体实现方式。通过实例展示了如何利用File、FileInputStream/FileOutputStream以及FileReader/FileWriter等类来完成基本的IO操作。

一,File创建文件

File file = new File("D:" + File.separator + "yi.txt"); 

    代码示例:

    

package com.hbut.io;

import java.io.File;
import java.io.IOException;

public class FileDemo {   
   
    public static void main(String[] args) {   
        File file = new File("D:" + File.separator + "yi.txt");   
        if (file.exists()) {   
            file.delete();  
            System.out.println("文件已存在");
        } else {   
            try {  
                boolean states=false;
                states = file.createNewFile(); 
                if(states==true)
                {
                    System.out.println("文件创建成功");
                }
            } catch (IOException e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
        }   
    }   
}  
View Code

 

二,OutputStream(字节流)写入文件

out= new FileOutputStream(file);//获取实际的字节流输出对象,内容覆盖

String info="hello";//要输入的内容 

byte[] b=info.getBytes();//将字符转化为字节数组

out.write(b);

     代码示例

package com.hbut.io;

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

public class OutputDemo {   
    public static void main(String[] args) {   
        File file = new File("D:" + File.separator + "yi.txt");//指定要写入的文件   
        OutputStream out=null;//定义字节流输出对象   
        try {      
            out= new FileOutputStream(file);//获取实际的字节流输出对象,内容覆盖   
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        }   
        String  info="hello";//要输入的内容   
        byte[] b=info.getBytes();//将字符转化为字节数组   
        try {   
            out.write(b);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        try {   
            out.close();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
}  
View Code

 

三,InputStream(字节流)读出文件

InputStream In = null;// 定义字节流输入对象

In = new FileInputStream(file);// 获取实际的字节流输入对象

byte[] b = new byte[1024];// 开辟空间,读取内容

len = In.read(b);// 读取

System.out.println(new String(b, 0, len));//输出读取的内容

    代码示例

package com.hbut.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class InputStreamDemo {
    public static void main(String[] args) {
        File file = new File("D:" + File.separator + "yi.txt");// 指定要读取的文件
        InputStream In = null;// 定义字节流输入对象
        try {
            // out= new FileOutputStream(file,true);//是否字节追加函数
            In = new FileInputStream(file);// 获取实际的字节流输入对象
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        int len = 0;// 输入数组长度
        byte[] b = new byte[1024];// 开辟空间,读取内容
        // byte[] b=new byte[(int)file.length()];//根据文件大小开辟空间
        try {
            len = In.read(b);// 读取
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        try {
            In.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(new String(b, 0, len));
    }
}
View Code

 

四,Writer(字符流)写入文件

Writer write = null;// 定义字符输出流

write = new FileWriter(file);

String infor = "hello,WriterDemo";//即将写入文件的信息

write.write(infor);//写入文件

     代码示例

package com.hbut.io;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class WriterDemo {
    public static void main(String[] args) {
        File file = new File("D:" + File.separator + "WriterDemo.txt");// 指定要写入的文件
        Writer write = null;// 定义字符输出流
        try {
            write = new FileWriter(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String infor = "hello,WriterDemo";
        try {
            write.write(infor);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            write.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
View Code

 

五,Reader(字符流)读出文件内容

Reader read = null;// 定义字符输入流   

read = new FileReader(file); 

char[] b=new char[1024];//设置字符的长度 

int len=read.read(b);//文件内容读入到 b[] 

System.out.println(new String(b)); 

    代码示例

package com.hbut.io;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class ReaderDemo {   
    public static void main(String[] args) {   
        File file = new File("D:" + File.separator + "yi.txt");// 指定要读出的文件   
        Reader read = null;// 定义字符输入流   
        try {   
            read = new FileReader(file);   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        char[] b=new char[1024];//设置字符的长度   
        try {   
            int len=read.read(b);   
            System.out.println(new String(b));
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
        try {   
            read.close();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   
}  
View Code

 

转载于:https://www.cnblogs.com/weiyikang/p/5608295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值