java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

时间:2023-11-10 15:07:31
 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; /**
* 文件读取四步骤
* ---------要保证文件存在,不能保证就需判断是否存在,在这里手动创建一个文件text.txt以确保存在
* 1:获取文件
* 2:将文件写入到文件输入流中<文件输入流是字节流>
* 3:将文件流写入到输入流Reader中
* 4:将输入流文件放到缓冲流BufferReader中
* 四步骤:执行完毕文件会读入缓冲流
* 5:从缓冲流中每次读取一行打印输出
* 6:关闭资源<流>
* 文件写出同理:
* @author NEXT_NiGHT
*
*/
public class FileRW { public static void main(String[] args) {
//----------------------文件读入
//
File file = new File("text.txt");
try {
35 //2
36 FileInputStream fis=new FileInputStream(file);
37 //3
38 InputStreamReader isr=new InputStreamReader(fis,"utf-8");//FileInputStream字符流转换成字节流要注意编码
39 //4
40 BufferedReader br=new BufferedReader(isr);
41   //5
42 String line;//用来保存读取到的数据
43 while((line = br.readLine())!=null){//每次读取一行不为空
44 System.out.println(line);
45 }
//
br.close();
isr.close();
fis.close(); //----------------------文件写出
//1链接文件<要写出的位置>
File file2=new File("newtext.txt");
//2文件输出流
56 FileOutputStream fos=new FileOutputStream(file2);
57 //3输出流
58 OutputStreamWriter os=new OutputStreamWriter(fos,"utf-8");
59 //4写入缓冲流
60 BufferedWriter bw=new BufferedWriter(os);
61 //5写入
62 bw.write("七月七日长生殿\n");
63 bw.write("夜半无人私语时\n");
64 bw.write("在天月作比翼鸟\n");
65 bw.write("在地愿为连理枝\n");
//6关闭资源
bw.close();
os.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} }
}

以上代码完整阐述了从文件中读取的内容并打印输出,以及如何向一个文件中写入内容:

完整的eclise java代码,可直接运行;

text.txt文件:

七月七日长生殿
夜半无人私语时
在天愿作比翼鸟
在地愿为连理枝

  

注意:

  33行位置链接一个文件,若此时文件不存在那么进行后面的操作就会报异常,提示文件不存在。如果未进行文件是否存在的判定那么就必须保证文件是存在的。所以运行之前要在工程中创建一个文件text.txt

  55行的位置同样链接了一个文件,若文件不存在是否后续操作也会报异常呢?答案是否定的,56行的操作会自动创建一个文件,并且后面写入内容时会存入此文件

  62行写入文件时用到了write这个函数,执行完毕后如果我们换掉写入的内容,那么newtext.txt这个文件中的内容将是新的内容,write函数将会覆盖掉文件原来的内容

                                                                         2015-07-20