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

 1 2
 3 import java.io.BufferedReader;
 4 import java.io.BufferedWriter;
 5 import java.io.File;
 6 import java.io.FileInputStream;
 7 import java.io.FileNotFoundException;
 8 import java.io.FileOutputStream;
 9 import java.io.IOException;
10 import java.io.InputStreamReader;
11 import java.io.OutputStreamWriter;
12 import java.io.UnsupportedEncodingException;
13
14 /**
15  * 文件读取四步骤
16  * ---------要保证文件存在,不能保证就需判断是否存在,在这里手动创建一个文件text.txt以确保存在
17  * 1:获取文件
18  * 2:将文件写入到文件输入流中<文件输入流是字节流>
19  * 3:将文件流写入到输入流Reader中
20  * 4:将输入流文件放到缓冲流BufferReader中
21  * 四步骤:执行完毕文件会读入缓冲流
22  * 5:从缓冲流中每次读取一行打印输出
23  * 6:关闭资源<流>
24  * 文件写出同理:
25  * @author NEXT_NiGHT
26  *
27  */
28 public class FileRW {
29
30     public static void main(String[] args) {
31     //----------------------文件读入
32         //1
33         File file = new File("text.txt");
34         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             }
46         //6
47             br.close();
48             isr.close();
49             fis.close();
50
51
52     //----------------------文件写出
53             //1链接文件<要写出的位置>
54             File file2=new File("newtext.txt");
55             //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");
66             //6关闭资源
67             bw.close();
68             os.close();
69             fos.close();
70         } catch (FileNotFoundException e) {
71             e.printStackTrace();
72         } catch (UnsupportedEncodingException e) {
73             e.printStackTrace();
74         } catch (IOException e) {
75             e.printStackTrace();
76         }
77
78
79
80
81     }
82 }

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

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

text.txt文件:

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

  

注意:

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

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

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

                                                                         2015-07-20

时间: 2024-12-09 13:01:04

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

【Spring源码分析】.properties文件读取及占位符${...}替换源码解析

前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.properties文件中配置的参数使用占位符"${}"替换的方式读入并设置到Bean的相应参数中. 这种做法最典型的就是JDBC的配置,本文就来研究一下.properties文件读取及占位符"${}"替换的源码,首先从代码入手,定义一个DataSource,模拟一下JDB

如何写出无法维护的代码

如何写出无法维护的代码 酷壳里有很多我觉得很不错的文章,但是访问量最大的却是那篇<6个变态的Hello World>,和它能在本站右边栏“全站热门”中出现的还有“如何加密源代码”,以及编程真难啊等这样的文章.可见本站的读者们的偏好,我也相信你们都是“身怀绝技”的程序员.所以,今天给大家推荐这篇文章,相信一定能触动大家的兴奋点. 这篇文章的原文在这里(http://mindprod.com/jgloss/unmain.html),我看完后我想说—— 什么叫“创造力”,创造力就是——就算是要干一件

怎样写出无法维护的代码

每次写代码的时候,我都尽量写出一个尽可能方便其他人看得懂的代码,没办法,很多时候维护也是我自己,活着小的看不懂,还是我自己出手.但今天我想反其道而行之,怎样才能写出一份无法维护的代码. 原文在这里,原文翻译了一点,再加上自己的理解. 这个无法维护的代码是什么? 如果你的代码根本是别人看不懂,那不好意思,如果是我,我会尽可能另外写一份,或者一边看代码,一边注释,还有重命名,总之最后还是让我改了一遍就完事了.如果仅仅是这样,我觉得,还不是无法维护吧.应该看起来还算正常,而且有详细的注释,让人充满希望

如何写出优雅的css代码?

如何写出优雅的css代码? 对于同样的项目或者是一个网页,尽管最终每个前端开发工程师都可以实现相同的效果,但是他们所写的代码一定是不同的.有的优雅,看起来井井有条,清晰易懂,这样的代码有利于团队合作和后期的维护:而有的混乱,虽然表达出了最终的效果,然而却晦涩难懂,显然团队成员在读这样的代码时就显得无从下手,更不利于后期的维护了.那么如何写出优雅的代码呢?下面我将以一个很小的项目就以下几个方面简单的表达一下自己的看法,如有不妥,望批评指正. 如何整理一个项目. 如何写出清晰易懂的HTML代码. 如

居然在不伤元气的情况下写出了基数排序-)

基数排序就不多说了,其思路如下: 0. 输入为n个整数,每个数字为b位 1. 把整数拆分为b/r“位”, 每个"位"的长度为r(十进制长度) 2. 由低到高分别对每个“位”作计数排序 值得一说的是,为使算法效率最高,r应该为lgn(取整),然而实现中没有限定r的大小,可以自行设定. 不多说,上代码:(RadixSort.h省略) 1. RadixSort.cpp #include "stdafx.h" #include <malloc.h> #inclu

PAT1002 写出这个数 (C++实现)

PAT乙级考试题目 1002 写出这个数 (20 分) 题目要求: 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10?100??. 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格. 输入样例: 1234567890987654321123456789 输出样例: yi san wu 我的答案(C++实现): 本程序

java中文件的读与写

最近一直在学习java中如何读取和写出文件,看了java API之后,发现在java.io中有很多关于文件读与写的类,下面就介绍几个经常用到的. 首先是:InputStream和OutputStream,API中说它俩是所有抽象类表示字节输入输出流的超类,所以在它们下面派生了很多子类.例如:FileInputStream和OutputStream等等.这些类都是以单字节的形式读入数据的,所以如果读入的数据中有中文字符,那么就会出现中文乱码现象. 其次是:Reader和Writer,这两个类是用于

Java中IO流文件读取、写入和复制

//构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.list(); //获取目录下的文件File[] files=f.listFiles();  1.Java怎么读取文件 package com.yyb.file; import java.io.File; import java.io.FileInputStream; import java.io.In

java中利用RandomAccessFile读取超大文件

超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到400多M,简单的文件读取实在太慢,太占用机器资源. 特别是如果你需要5分钟就扫描一次日志文件,来统计一些即时数据.比如刚才10分钟的来访客户(大型网站用户统计系统例如51.la 会经常用到吧.)即时扫描大数据文件中的一部分显得非常之重要.本文讲述了如果使用java的RandomAccessFile方