java 文本文档_java ------ I/O (四) 读写文本文件

一、使用字节流读写文本文件

1、使用字节流类FileInputStream 读文本文件

InputStream 抽象类的常用子类 FileInputStream ,称为文件输入流 ,将文件中的数据输入到内存中,用于读取文本文件中的数据。

常用方法

ab42a4823d59b78839446dc1a310e742.png

主要步骤:

1、导入相关类,并抛出异常

2、构造一个文件输入流对象,将文件输入流对象 (fileInputStream )与源数据源(E:\\obge\\obgeTest.txt)关联起来

注意:要在路径 E:\\obge\\obgeTest.txt  下弄点数据,如帅气的obge

3、利用文件输入流类的方法读取文本中的文件内容

4、关闭流

实际运行结果

f995db714520e7e656f6f2647716c3d7.png

代码:

packagecom.obge.test2;importjava.io.FileInputStream;importjava.io.IOException;public classFileInputStreamStu {public static void main(String[] args) throwsIOException {//BufferedReader bufferedReader = new BufferedReader("E:\\obge\\obgeTest.txt");//创建流对象

FileInputStream fileInputStream = new FileInputStream("E:\\obge\\obgeTest.txt");intdata;//available() 可读取的字节数

System.out.println("可读取的字节数:"+fileInputStream.available());

System.out.println("文件内容为:");//循环读取内容

while((data = fileInputStream.read())!= -1){

System.out.println(data+"");

}//关闭流对象

fileInputStream.close();

}

}

2、使用字节流类FileOutStream 写文本文件

OutStream抽象类的常用子类 FileOutStream ,称为文件输出流,用于把文件中的数据输出到文件中,就是把内存中的数据写到指定的文本文件中。

常用方法:

1150781ef2d986fce639ab566ca29489.png

主要步骤:

1、导入相关类,并抛出异常

2、构造一个文件输出流对象,将文件输出流对象 (fileOutPutStream)与源数据源(E:\\obge\\obgeTest.txt)关联起来

注意:当obge 文件下没有 obgeTest.txt 这个文件时,会先创建此文件然后在写数据,有 obgeTest.txt 这个文件的话,默认情况下会覆盖原有文件中的内容,第二个参数 true 的作用就是像文件末尾中添加数据,

3、利用文件输出流类的方法将数据写入到文本文件中

4、关闭流

运行结果

f19bec2fdde3ba642712f96c99c13e90.png

代码:

packagecom.obge.test2;importjava.io.FileOutputStream;importjava.io.IOException;public classFileOutPutStreamstu {public static voidmain(String[] args) {try{

String str= "obge帅";//放到字节数组里

byte[] words =str.getBytes();//创建流对象,当obge 文件下没有 obgeTest.txt 这个文件时,会先创建此文件然后在写数据。//如果obge 文件下有 obgeTest.txt 这个文件,默认情况下会覆盖原有文件中的内容,第二个参数 true 的作用就是像文件末尾中添加数据

FileOutputStream fileOutPutStream = new FileOutputStream("E:\\obge\\obgeTest.txt",true);//写入文件

fileOutPutStream.write(words,0,words.length);

System.out.println("文件已更新");//关闭流

fileOutPutStream.close();

}catch(IOException e){

System.out.println("文件创建出错"+e.getMessage());

}

}

}

当然你要想看看报错

a1aa7e4ede100bf9e7f99c48de94b269.png

二、使用字符流读写数据

1、使用字符流类BufferedReader 和 FileReader 读取文本文件

BufferedReader 和 FileReader 时抽象类Reader的子类,通过字符流的方式读取文件,并使用了缓冲区,提高了读取文本文件的效率。

常用方法:

4cf3c65ece5e04c121cac99bfd6e162d.png

主要步骤:

1、导入相关类,并抛出异常

2、将对象 (fileReader)与源数据源(E:\\obge\\charstu.txt)关联起来

注意:要在路径 E:\\obge\\obgeTest.txt  下弄点数据,如帅气的obge

3、创建 BufferedReader 对象,将fileReader放入其中

4、利用BufferedReader类的方法读取文本中的文件内容

5、关闭流

运行结果

58c09543f616d521d067ea13ffd860c1.png

代码:

packagecom.obge.test2;importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.IOException;public classBufferedReaderStu {public static voidmain(String[] args) {try{//获取需要读取的文本文件的位置

FileReader fileReader = new FileReader("E:\\obge\\charstu.txt");//创建 BufferedReader 对象

BufferedReader bufferedReader = newBufferedReader(fileReader);//读取一行数据

String strLine =bufferedReader.readLine();//不为空就打印出charstu.txt 里面的东东

while (strLine != null){

System.out.println(strLine);

strLine=bufferedReader.readLine();

}//关闭流 从里到外关闭

bufferedReader.close();

fileReader.close();

}catch(IOException e){

System.out.println("文件不存在");

}

}

}

2、使用字符流类BufferedWriter 和 FileWriter 写文本文件

BufferWriter 和 FileWriter 是抽象类Writer的子类,通过字符流的方式把数据写到文本文件中,并使用了缓冲区,提高了写文本文件的效率。

常用方法:

9aff3525fa56358eaf0bf30a79d52089.png

主要步骤:

1、导入相关类,并抛出异常

2、将对象 (fileReader)与源数据源(E:\\obge\\charstu.txt)关联起来

注意:如果没有使用第二的参数为true,会覆盖原有数据

3、创建 BufferedReader 对象,将fileReader放入其中

4、利用BufferedReader类的方法读取文本中的文件内容

5、关闭流

运行结果

5e038e45319b99f2e53abcbe12097764.png

使用BufferedWriter 类如何追加内容?

发现原来的数据没有了,怎么办,就是在没有使用FileWriter 中的,允许追加字符串的多参构造方法

8880a6b2a1b87cd4659aa7236bc00e95.png

当然也有别的方法:  利用 BufferedWriter 中自带的构造方法

d489b9bd155715bf551c65b830f37d7e.png

代码:

packagecom.obge.test2;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;public classBufferedWriterStu {public static voidmain(String[] args) {try{//创建FileWriter 对象 和 数据源 E:\obge\charstu.txt 关联气力啊

FileWriter fileWriter = new FileWriter("E:\\obge\\charstu.txt",true);//创建bufferedWriter 对象

BufferedWriter bufferedWriter = newBufferedWriter(fileWriter);//如果 E:\obge\charstu.txt 中有两行,就加一个newLine();

bufferedWriter.newLine();//写入信息

bufferedWriter.write("新增第一行!");

bufferedWriter.write("不我也是新增的第一行");//写入新一行数据 俗称换一行写

bufferedWriter.newLine();

bufferedWriter.write("The second line");//刷新缓冲区

bufferedWriter.flush();//关闭流 从里到外关闭

fileWriter.close();

bufferedWriter.close();

System.out.println("文件写入成功");

}catch(IOException e){

System.out.println("文件不存在!");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值