文件的简单读写
2017-03-24 19:59
141 查看
------------siwuxie095
工程名:ReadWriteTextFile
包名:com.siwuxie095.rwfile
类名:ReadWriteFile.java
手动在工程上创建文件:
在工程名:ReadWriteTextFile 上,右键->New->Untitled Text File,
输入一首唐诗,保存路径选择 ReadWriteTextFile,命名为 text.txt
工程结构目录如下:
![](http://img.blog.csdn.net/20170324195919183)
text.txt 的内容:
![](http://img.blog.csdn.net/20170324195919437)
代码:
运行一览:
![](http://img.blog.csdn.net/20170324195920136)
此时的工程结构目录(需要手动刷新):
![](http://img.blog.csdn.net/20170324195920437)
newtext.txt 的内容:
![](http://img.blog.csdn.net/20170324195920683)
【made by siwuxie095】
工程名:ReadWriteTextFile
包名:com.siwuxie095.rwfile
类名:ReadWriteFile.java
手动在工程上创建文件:
在工程名:ReadWriteTextFile 上,右键->New->Untitled Text File,
输入一首唐诗,保存路径选择 ReadWriteTextFile,命名为 text.txt
工程结构目录如下:
text.txt 的内容:
代码:
package com.siwuxie095.rwfile; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; /** * 文件的读取: * 首先创建一个文件的输入流,再创建一个文件输入流的Reader, * 然后再创建一个带有缓冲的输入Reader(也是一个输入流) * * 文件的写出:和文件读取的3个流相对应 * 文件的输出流,带有Writer的输出流,带有缓冲的输出Writer * * @author siwux * */ public class ReadWriteFile { public staticvoid main(String[] args) { //文件的读取 File file=new File("text.txt"); if (file.exists()) { System.err.println("exist"); try { //要读取文件内容,首先要创建一个文件输入流 FileInputStream (字节流) //同时创建文件输入流对象,并赋值,有两个常用构造方法 //第一个传入文件,作为要读取的文件对象,第二个传入字符串,来指定当前文件的路径 //这里使用第一个构造方法,同时有异常的抛出 //使用 try catch 语句捕获:Surround with try/catch FileInputStream fis=new FileInputStream(file); try { //获取文件输入流之后,需要将其包装成一个 InputStreamReader (字符流) //使用构造方法:传入输入流 InputStream:fis //同时指定一个String类型的字符集 CharsetName:"UTF-8" //(在字符和字节之间转换时必须要指定文本的编码,否则可能会出现乱码) //同样会有异常抛出,添加到 try catch 语句中:Surround with try/catch InputStreamReader isr=new InputStreamReader(fis, "UTF-8"); //创建InputStreamReader之后,需要再创建一个带有缓冲区的Reader:BufferedReader //并指定一个新的实例,传入Reader:isr br可以直接读取一行数据 BufferedReader br=new BufferedReader(isr); //用于文件输入的三个流准备完毕,再创建一个 String 用来临时存放读取到的一行数据 String line; //while循环,让 line 等于读取到的一行数据(BufferedReader可以直接读取一行数据) while ((line=br.readLine())!=null) { //不为空,就输出一行数据 System.out.println(line); } //读取完毕 //关闭输入流关闭的顺序是:先打开的后关闭,后打开的先关闭 //br.readLine() br.close() isr.close() fis.close() 都会有异常的抛出 //同样添加到try catch中 //在br.readLine()处:Add catch clause to surrounding try br.close(); isr.close(); fis.close(); } catch (UnsupportedEncodingException e) { //InputStreamReader 的 catch e.printStackTrace(); } catch (IOException e) { //br.readLine() br.close() isr.close() fis.close() 的 catch e.printStackTrace(); } } catch (FileNotFoundException e) { // FileInputStream 的 catch e.printStackTrace(); } } //文件的写出 try { //会有异常抛出,将下面这段代码选中,右键->Surround With(Alt+Shift+Z)->Try/catch Block File newfile=new File("newtext.txt"); //创建文件输出流(字节流) FileOutputStream fos=new FileOutputStream(newfile); //创建一个文件输出流的Writer(字符流) OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8"); //创建一个带有缓冲区的Writer BufferedWriter bw=new BufferedWriter(osw); //三个输出流准备完成后,如果文件不存在,不必专门把文件创建出来 //因为在使用 FileOutputStream 时,如果该文件不存在,文件输出流会自动把该文件创建出来 //向文件中写出数据使用 BufferedWriter 的 write() 方法加入 \n 换行 //bw.write() 同样会有异常抛出 //需要用 try catch 语句捕获:Add catch clause to surrounding try //BufferedWriter 的 write() 方法有覆盖性:每一次写都是将之前的文件覆盖 bw.write(" 静夜思\n"); bw.write("床前明月光,\n"); bw.write("疑是地上霜。\n"); bw.write("举头望明月,\n"); bw.write("低头思故乡。\n"); //写出完毕 //关闭输出流关闭的顺序是:先打开的后关闭,后打开的先关闭 bw.close(); osw.close(); fos.close(); System.out.println("写入完成"); } catch (FileNotFoundException e) { //FileOutputStream 的 catch e.printStackTrace(); } catch (UnsupportedEncodingException e) { //OutputStreamWriter 的 catch e.printStackTrace(); } catch (IOException e) { //bw.write() bw.close() osw.close() fos.close() 的 catch e.printStackTrace(); } } } |
运行一览:
此时的工程结构目录(需要手动刷新):
newtext.txt 的内容:
【made by siwuxie095】
相关文章推荐
- c#读写ANSI格式文件,解决中乱码问题最简单的写法
- 用c读写dbf文件的简单实现
- Qt4 简单读写文件及文件拷贝
- Linux C 简单低级文件读写(1)
- c#读写ANSI格式文件,解决中乱码问题最简单的写法
- 对文件的简单读写操作
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- IO读写文件/目录 的简单例子
- Java简单的文件读写,换行
- C#: 最简单的文件读写
- 文件读写简单实例---拷贝文件
- WinAPI: WritePrivateProfileString、GetPrivateProfileString - 简单读写 Ini 文件
- 使用Java实现对dbf文件的简单读写
- 关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用)
- 简单说点对文件系统、分层驱动、文件读写的理解
- 使用Java实现对dbf文件的简单读写
- c++ 文件读写简单示例
- 简单的文件读写操作
- java简单地读写文件 和 键盘输入
- 文件服务器读写简单示例