Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  java  >  正文 Java中读/写文件文本文件的示例

Java中读/写文件文本文件的示例

发布时间:2016-12-03   编辑:www.jquerycn.cn
jquery中文网为您提供Java中读/写文件文本文件的示例 等资源,欢迎您收藏本站,我们将为您提供最新的Java中读/写文件文本文件的示例 资源
下面我们来介绍一下关于Java中读/写文件文本文件的方法,这里,Java的读文件和写文件都是基于字符流的,主要用到下面的几个类:

1、FileReader----读取字符流
2、FileWriter----写入字符流
3、BufferedReader----缓冲指定文件的输入
该类的方法有:
void close()
        关闭该流。
 void mark(int readAheadLimit)
        标记流中的当前位置。
 boolean markSupported()
        判断此流是否支持 mark() 操作(它一定支持) int read()
        读取单个字符。
 int read(char[] cbuf, int off, int len)
        将字符读入数组的某一部分。
 String readLine()
        读取一个文本行。
 boolean ready()
        判断此流是否已准备好被读取。
 void reset()
        将流重置为最新的标记。
 long skip(long n)
        跳过字符。
4、BufferedWriter----将缓冲对文件的输出
该类的方法有:
void close()
        关闭该流。
 void flush()
        刷新该流的缓冲。
 void newLine()
        写入一个行分隔符。
 void write(char[] cbuf, int off, int len)
        写入字符数组的某一部分。
 void write(int c)
        写入单个字符。
 void write(String s, int off, int len)
        写入字符串的某一部分。

 

举个例子如下:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5353')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5353>


package aillo;
import java.io.*;
public class FileWriterReader {
//功能:读取f:/aillo.txt文件的内容(一行一行读),并将其内容写入f:/jackie.txt中
//知识点:java读文件、写文件---<以字符流方式>
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("f:/aillo.txt");//创建FileReader对象,用来读取字符流
            BufferedReader br = new BufferedReader(fr);    //缓冲指定文件的输入
            FileWriter fw = new FileWriter("f:/jackie.txt");//创建FileWriter对象,用来写入字符流
            BufferedWriter bw = new BufferedWriter(fw);    //将缓冲对文件的输出
            String myreadline;    //定义一个String类型的变量,用来每次读取一行
            while (br.ready()) {
                myreadline = br.readLine();//读取一行
                bw.write(myreadline); //写入文件
                bw.newLine();
                System.out.println(myreadline);//在屏幕上输出
            }
            bw.flush();    //刷新该流的缓冲
            bw.close();
            br.close();
            fw.close();
            br.close();
            fr.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Java 读/写文件文本文件的示例

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9835')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9835>

/*
 * 简单的读/写文本文件的示例
 * 这里包含了三个例子,即
 * 1. 将文件读入到内存(这里是StringBuffer)的例子
 * 2. 将内容中的文本写到文件
 * 3. 将一个文件的内容读出来写入另一个文件中
 *    同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流)
 * 三个例子可以独立存在,所以根据需要只看其中一个就行了。
 */

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;

public final class AccessTextFile {

    /**
     * 1. 演示将流中的文本读入一个 StringBuffer 中
     * @throws IOException
     */
    public void readToBuffer(StringBuffer buffer, InputStream is)
        throws IOException {
        String line;        // 用来保存每行读取的内容
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        line = reader.readLine();       // 读取第一行
        while (line != null) {          // 如果 line 为空说明读完了
            buffer.append(line);        // 将读到的内容添加到 buffer 中
            buffer.append("n");        // 添加换行符
            line = reader.readLine();   // 读取下一行
        }
    }

    /**
     * 2. 演示将 StringBuffer 中的内容读出到流中
     */
    public void writeFromBuffer(StringBuffer buffer, OutputStream os) {
        // 用 PrintStream 可以方便的把内容输出到输出流中
        // 其对象的用法和 System.out 一样
        // (System.out 本身就是 PrintStream 对象)
        PrintStream ps = new PrintStream(os);  
        ps.print(buffer.toString());
    }

    /**
     * 3*. 从输入流中拷贝内容到输入流中
     * @throws IOException
     */
    public void copyStream(InputStream is, OutputStream os) throws IOException {
        // 这个读过过程可以参阅 readToBuffer 中的注释
        String line;
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
        line = reader.readLine();
        while (line != null) {
            writer.println(line);
            line = reader.readLine();
        }
        writer.flush();     // 最后确定要把输出流中的东西都写出去了
                            // 这里不关闭 writer 是因为 os 是从外面传进来的
                            // 既然不是从这里打开的,也就不从这里关闭
                            // 如果关闭的 writer,封装在里面的 os 也就被关了
    }

    /**
     * 3. 调用 copyStream(InputStream, OutputStream) 方法拷贝文本文件
     */
    public void copyTextFile(String inFilename, String outFilename)
        throws IOException {
        // 先根据输入/输出文件生成相应的输入/输出流
        InputStream is = new FileInputStream(inFilename);
        OutputStream os = new FileOutputStream(outFilename);
        copyStream(is, os);     // 用 copyStream 拷贝内容
        is.close(); // is 是在这里打开的,所以需要关闭
        os.close(); // os 是在这里打开的,所以需要关闭
    }

    public static void main(String[] args) throws IOException {
        int sw = 1;     // 三种测试的选择开关
        AccessTextFile test = new AccessTextFile();
       
        switch (sw) {
        case 1: // 测试读
        {
            InputStream is = new FileInputStream("E:\test.txt");
            StringBuffer buffer = new StringBuffer();
            test.readToBuffer(buffer, is);
            System.out.println(buffer);     // 将读到 buffer 中的内容写出来
            is.close();
            break;
        }
        case 2: // 测试写
        {
            StringBuffer buffer = new StringBuffer("Only a testn");
            test.writeFromBuffer(buffer, System.out);
            break;
        }
        case 3: // 测试拷贝
        {
            test.copyTextFile("E:\test.txt", "E:\r.txt");
        }
            break;
        }
    }

}

您可能感兴趣的文章:
Java 实例
Java 中对文件的读写操作之比较
php文件操作之读取与写入文件
js读写文件实例代码(读取与写入文本文件)
c# 二进制方式读取文本文件的实现代码
Java 教程
javascript基础教程(1)-语言特点
js读取与写入本地文件实现代码
JS本地文件操作 JS读写txt文件示例
shell按行读取文件的三种方法

[关闭]