Java 中对文件的读写操作之比较

比较

Java 中对文件的读写操作之比较

作者:Jeru Liu
日期:November 29,2000
版本:1.0

Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行
一次分析,归类,理清不同方法之间的异同点。

一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的。
InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在
OutputStream 中我们有 FileOutputStream 这个对象。

用FileInputStream 来读取数据的常用方法是:
FileInputStream fstream = new FileInputStream(args[0]);
DataInputStream in = new DataInputStream(fstream);
用 in.readLine() 来得到数据,然后用 in.close() 关闭输入流。
完整代码见 Example 1。

用FileOutputStream 来写入数据的常用方法是:
FileOutputStream out out = new FileOutputStream("myfile.txt");    
PrintStream p = new PrintStream( out );
用 p.println() 来写入数据,然后用 p.close() 关闭输入。
完整代码见 Example 2。

二.在 JDK 1.1中,支持两个新的对象 Reader & Writer, 它们只能用来对文本文件进行操作,而
JDK1.1中的 InputStream & OutputStream 可以对文本文件或二进制文件进行操作。

用FileReader 来读取文件的常用方法是:
FileReader fr = new FileReader("mydata.txt");
BufferedReader br = new BufferedReader(fr);
用 br.readLing() 来读出数据,然后用br.close() 关闭缓存,用fr.close() 关闭文件。
完整代码见 Example 3。

用 FileWriter 来写入文件的常用方法是:
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);  
在用out.print 或 out.println 来往文件中写入数据,out.print 和 out.println的唯一区别是后者写
入数据或会自动开一新行。写完后要记得 用out.close() 关闭输出,用fw.close() 关闭文件。   
完整代码见 Example 4。

-------------------------------------------------------------- following is the source code of examples------------------------------------------------------

Example 1:
// FileInputDemo
// Demonstrates FileInputStream and DataInputStream
import java.io.*;

class FileInputDemo {
  public static void main(String args[]) {
    // args.length is equivalent to argc in C
    if (args.length == 1) {
      try {
        // Open the file that is the first command line parameter
        FileInputStream fstream = new FileInputStream(args[0]);
        // Convert our input stream to a DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        // Continue to read lines while there are still some left to read
        while (in.available() !=0) {
          // Print file line to screen
          System.out.println (in.readLine());
        }
        in.close();
      } catch (Exception e) {
        System.err.println("File input error");
      }
    }
    else
      System.out.println("Invalid parameters");
  }
}

Example 2:
// FileOutputDemo
// Demonstration of FileOutputStream and PrintStream classes
import java.io.*;

class FileOutputDemo
{    
  public static void main(String args[])  {              
  FileOutputStream out; // declare a file output object
    PrintStream p; // declare a print stream object

try {
  // connected to "myfile.txt"
      out = new FileOutputStream("myfile.txt");
      // Connect print stream to the output stream
      p = new PrintStream( out );
      p.println ("This is written to a file");
      p.close();
    } catch (Exception e) {
      System.err.println ("Error writing to file");
    }
  }
}

Example 3:
// FileReadTest.java
// User FileReader in JDK1.1 to read a file
import java.io.*;

class FileReadTest {      
  public static void main (String[] args) {
    FileReadTest t = new FileReadTest();
    t.readMyFile();
}
    
  void readMyFile() {
    String record = null;
    int recCount = 0;
    try {
FileReader fr = new FileReader("mydata.txt");
       BufferedReader br = new BufferedReader(fr);
       record = new String();
       while ((record = br.readLine()) != null) {
         recCount++;
         System.out.println(recCount + ": " + record);
}
br.close();
fr.close();
     } catch (IOException e) {
         System.out.println("Uh oh, got an IOException error!");
         e.printStackTrace();
     }
}
  
}    

Example 4:
// FileWriteTest.java
// User FileWriter in JDK1.1 to writer a file
import java.io.*;

class FileWriteTest {      
  public static void main (String[] args) {
    FileWriteTest t = new FileWriteTest();
    t.WriteMyFile();
}
    
  void WriteMyFile() {
    try {
FileWriter fw = new FileWriter("mydata.txt");
PrintWriter out = new PrintWriter(fw);    
out.print(“hi,this will be wirte into the file!”);   
out.close();
fw.close();
     } catch (IOException e) {
         System.out.println("Uh oh, got an IOException error!");
         e.printStackTrace();
     }
}
  
}    

时间: 2024-10-26 06:00:51

Java 中对文件的读写操作之比较的相关文章

Java中对文件的读写操作之比较

比较 Java 中对文件的读写操作之比较 Java 对文件进行读写操作的例子很多,让初学者感到十分困惑,我觉得有必要将各种方法进行 一次分析,归类,理清不同方法之间的异同点. 一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 这两个基类来进行读写操作的. InputStream 中的 FileInputStream 类似一个文件句柄,通过它来对文件进行操作,类似的,在 OutputStream 中我们有 FileOutputStream 这个对象. 用F

java中IO操作 利用文件流 过滤流对文件进行读写操作

/* 两种基本的流是:输入流(Input Stream)和输出流(Output Stream) .可从中读出一系列字节的对象称为输入流. 而能向其中写入一系列字节的对象称为输出流. System.out.println   中的 out 是 PrintStream 类对象   System类的静态成员可以向 输出流写入数据 System.in.read()     in 是InputStream类的成员 可以从键盘等输入设备读取字节数据  利用FileInputStream   FileOutp

Java中对文件的操作

Java中对文件的操作 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 1.新建目录 <%@ page contentType="text/html;charset=gb2312"%> <% String filePath="c:/aaa/"; filePath=filePath.toString();//中文转换 java.io.File myFilePath=new java.i

Android中对/data/data/&amp;lt;package name&amp;gt;/files下文件的读写操作

本文重点展示,对/data/data/<package name>/files中文件的读写操作的实现.       一.写出数据到files文件夹中,Activity提供了openFileOutput()方法,可以把数据输出到/data/data/<package name>/files的文件夹中. public class FileActivity extends Activity { @Override public void onCreate(Bundle savedInst

JAVA 中 jar 文件的编写和应用

JAVA中jar文件的编写和应用     我想JAVA的爱好者,尤其是初学者大都有过这样的经历,就是喜欢JAVA编程语言(这个人的情况可能不一样),但是有时候总会觉得JAVA的优点便是她的"致命"的缺点.大家的信念依旧是"一次编译,到处运行"但是就是因为至一点JAVA失去了好多,我们也失去了好多.也许大家都知道,现在业界最推崇的还是微软的技术微软的产品..net/c#/.vb/vb.net还是最流行的语言,最受欢迎的软件开发语言.因为这些语言都太好学太好用了.不像J

Lua中的文件I/O操作教程

  这篇文章主要介绍了Lua中的文件I/O操作教程,是Lua入门学习中的基础知识,需要的朋友可以参考下 Lua中I/O库用于读取和处理文件.有两种类型的文件操作,在Lua即隐含文件的描述符和明确的文件描述符. 对于下面的例子中,我们将使用一个示例文件test.lua,如下图所示. 代码如下: -- sample test.lua -- sample2 test.lua 一个简单的文件打开操作使用下面的语句. 代码如下: file = io.open (filename [, mode]) 各种文

Linux内核驱动中对文件的读写

有时候需要在Linux kernel–大多是在需要调试的驱动程序–中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主 要有: filp_open() filp_close(), vfs_read() vfs_write(),set_fs(),get_fs()等,这些函数在linux/fs.h和asm/uaccess.h头文件中声明.下面介绍主要步骤 1. 打开文件 filp_open()在kernel中可以打开文件,其原形如下: strcut fi

Java中实现文件上传下载的三种解决方案(推荐)_java

java文件上传与文件下载是程序开发中比较常见的功能,下面通过本文给大家介绍Java中实现文件上传下载的三种解决方案,具体详情如下所示: 第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null; String fileAddre="/numUp"; try { InputStream stream = file.getInputStream(

Java中实现文件拷实例

Java中实现文件拷实例 import java.io.*; class copy_file { public static void copyfile(String path1,String path2) throws IOException //使用FileInputStream和FileOutStream { FileInputStream fi=new FileInputStream(path1); FileOutputStream fo=new FileOutputStream(pat