Java文件读写的一些方法总结

文件读写有以下几种常用的方法

1、字节读写(InputStream/OutputStream)、字符读取(FileReader/FileWriter)

FileInputStream的read(buffer)方法,每次从源程序文件OpenFile.java中读取512个字节,存储在缓冲区buffer中,再将以buffer中的值构造的字符串new String(buffer)显示在屏幕上。程序如下(本例程序放在包biz.1cn.stream里面,另外请在根目录下建立TestFile.txt文件,以便正常运行

 代码如下 复制代码

package biz.1cn.stream;
import java.io.FileInputStream;
import java.io.IOException;
/**
 * @author chenrz(simon)
 * @date 2006-6-29
 *       <p>
 *       JAVA字节流例子-读文件
 *       </p>
 */
public class ReadFile {
 public static void main(String[] args) {
     try {
  // 创建文件输入流对象
  FileInputStream is = new FileInputStream("TestFile.txt");
  // 设定读取的字节数
  int n = 512;
  byte buffer[] = new byte[n];
  // 读取输入流
  while ((is.read(buffer, 0, n) != -1) && (n > 0)) {
      System.out.print(new String(buffer));
  }
  System.out.println();
  // 关闭输入流
  is.close();
     } catch (IOException ioe) {
  System.out.println(ioe);
     } catch (Exception e) {
  System.out.println(e);
     }
 }
}

本例用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区buffer中,再以FileOutStream的write(buffer)方法,将buffer中内容写入文件WriteFile.txt中,程序如下(本例程序放在包biz.1cn.stream里面,另外运行后会在根目录下建立WriteFile.txt文件):

 代码如下 复制代码

package biz.1cn.stream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 * @author chenrz(simon)
 * @date 2006-6-29
 *       <p>
 *       JAVA字节流例子-写文件(www.1cn.biz)
 *       </p>
 */
public class WriteFile {
 public static void main(String[] args) {
     try {
  System.out.print("输入要保存文件的内容:");
  int count, n = 512;
  byte buffer[] = new byte[n];
  // 读取标准输入流
  count = System.in.read(buffer);
  // 创建文件输出流对象
  FileOutputStream os = new FileOutputStream("WriteFile.txt");
  // 写入输出流
  os.write(buffer, 0, count);
  // 关闭输出流
  os.close();
  System.out.println("已保存到WriteFile.txt!");
     } catch (IOException ioe) {
  System.out.println(ioe);
     } catch (Exception e) {
  System.out.println(e);
     }
 }
}

2、字符读取(FileReader/FileWriter)

 代码如下 复制代码

package test;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

public static void main(String arg[]) {
  String fileName = "E:sharetest.txt";
  String writeData = "HelloWorld!rnnihao我的内存是3G的 ";
  File file = new File(fileName);
  if(file.exists()){
   file.delete();
  }
 
  char[] byteOutData = writeData.toCharArray();
  char[] byteInData = new char[50];
  int length = 0;
 
  try {
   file.createNewFile();
   if(file.exists() && file.canWrite()){
    FileWriter fileWrite = new FileWriter(file);
    fileWrite.write(byteOutData);
    fileWrite.close();
   }
   if (file.exists() && file.canRead()) {
    FileReader fileReader = new FileReader(file);
    while((length = fileReader.read(byteInData)) !=-1){
     System.out.print(new String(byteInData,0,length));
    }

     fileReader.close();
   }

  } catch (IOException e) {
   System.out.println("IOException occur");
   e.getMessage();
  }
}
}

3、行读取(BufferedReader/BufferedWriter)

代码(以读取为例):

 代码如下 复制代码

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
/**
 * <b>文件读取类</b><br />
 * 1、按字节读取文件内容<br />
 * 2、按字符读取文件内容<br />
 * 3、按行读取文件内容<br />
 * @author qin_xijuan
 *
 */
public class FileOperate {
   
    private static final String FILE_PATH = "d:/work/the List of Beautiful Music.txt";

    /**
     * 以字节为单位读取文件内容
     * @param filePath:需要读取的文件路径
     */
    public static void readFileByByte(String filePath) {
        File file = new File(filePath);
        // InputStream:此抽象类是表示字节输入流的所有类的超类。
        InputStream ins = null ;
        try{
            // FileInputStream:从文件系统中的某个文件中获得输入字节。
            ins = new FileInputStream(file);
            int temp ;
            // read():从输入流中读取数据的下一个字节。
            while((temp = ins.read())!=-1){
                System.out.write(temp);
            }
        }catch(Exception e){
            e.getStackTrace();
        }finally{
            if (ins != null){
                try{
                    ins.close();
                }catch(IOException e){
                    e.getStackTrace();
                }
            }
        }
    }
   
    /**
     * 以字符为单位读取文件内容
     * @param filePath
     */
    public static void readFileByCharacter(String filePath){
        File file = new File(filePath);
        // FileReader:用来读取字符文件的便捷类。
        FileReader reader = null;
        try{
            reader = new FileReader(file);
            int temp ;
            while((temp = reader.read()) != -1){
                if (((char) temp) != 'r') {
                    System.out.print((char) temp);
                }
            }
        }catch(IOException e){
            e.getStackTrace();
        }finally{
            if (reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
   
    /**
     * 以行为单位读取文件内容
     * @param filePath
     */
    public static void readFileByLine(String filePath){
        File file = new File(filePath);
        // BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
        BufferedReader buf = null;
        try{
            // FileReader:用来读取字符文件的便捷类。
            buf = new BufferedReader(new FileReader(file));
            // buf = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
            String temp = null ;
            while ((temp = buf.readLine()) != null ){
                System.out.println(temp);
            }
        }catch(Exception e){
            e.getStackTrace();
        }finally{
            if(buf != null){
                try{
                    buf.close();
                } catch (IOException e) {
                    e.getStackTrace();
                }
            }
        }
    }

    public static void main(String args[]) {
        readFileByByte(FILE_PATH);
        readFileByCharacter(FILE_PATH);
        readFileByLine(FILE_PATH);
    }
}

时间: 2024-12-22 02:56:10

Java文件读写的一些方法总结的相关文章

php使用fputcsv()函数csv文件读写数据的方法_php技巧

本文实例讲述了php使用fputcsv()函数csv文件读写数据的方法.分享给大家供大家参考.具体分析如下: fputcsv() 函数用于将数据格式为csv格式,以便写入文件或者数据库. 1.将字符串写入csv文件中,代码如下: 复制代码 代码如下: $test_array = array(     array("111","sdfsd","sdds","43344","rrrr"),     array(

Eclipse不自动编译java文件的终极解决方法_java

最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般是如下几个步骤.但是还是不自动编译. 最基本的解决办法--这是前提   然后clean和refresh下项目.如果这样还是不行,用下面的方法吧,终极解决方案...... 1:去除项目中的jre的classpath       2:在将jre的包添加到classpath中来   OK,大功告成!再出现

java 文件读写实例(读写csv文件)

不能直接用   File file = new File("http://127.0.0.1:8080/aa.txt") 来读取,因为网络上的传输协议为HTTP,与本地不同,要用URL来读取  代码如下 复制代码        String output="";         File file = new File("E://bb.txt");             URL MyURL = new URL("http://127.

Go语言编程中对文件读写的基本方法整理_Golang

1.func Copy(dst Writer, src Reader) (written int64, err error)这个函数是从一个文件读取拷贝到另外一个文件,一直拷贝到读取文件的EOF,所以不会返回io.EOF错误,参数是写入目标器和读取目标器,返回int64的拷贝字节数和err信息 复制代码 代码如下: import (  "fmt"  "io"  "os" ) func main() {  r, _ := os.Open("

Java编程之文件读写实例详解_java

本文实例讲述了Java编程中文件读写的方法.分享给大家供大家参考,具体如下: Java中文件读写操作的作用是什么? 回答这个问题时应该先想到的是Java只是一门语言,我们的一种使用工具而已,这样答案就明晰了,就是将外来的各种数据写入到某一个文件中去,用以保存下来:或者从文件中将其数据读取出来,供我们使用.就如下电影过程,从网络资源中下载一部电影保存于你电脑中(写文件),当你想看的时候就用播放器打开(读文件). Java中如何对文件进行读写操作? 先理一理,Java中的流分两种,字节流和字符流,其

Android编程之在SD卡上进行文件读写操作实例详解_Android

本文实例讲述了Android编程之在SD卡上进行文件读写操作的方法.分享给大家供大家参考,具体如下: 很多知识只有真正理解掌握之后才能运用自如,举一反三.对Java中的文件操作和android系统SD卡里面的文件操作,你觉得有区别吗,显然没有本质区别,如果勉强说有,那也是不足为道滴,但我们在实际运用中却要注意如下几点,不然问题会缠上你. 1.首先想要对android系统SD卡里文件操作需要添加使用权限: android系统是不会让外来程序随意动自己内存的,如果没有许可证,不好意思,不准你动我地盘

从JSP页面调用查询语句就报空指针,但是从java文件中调用缺显示正常

问题描述 <%}elseif("edit".equals(action)){Integerid=Integer.parseInt(request.getParameter("id"));CalendarDaocalendarDao=newCalendarDaoImpl();Calendarcalendar=newCalendarDaoImpl().findById(id); 这个是JSP文件里调用的findById方法,Calendarcalendar=cal

Java文件I/O的三种方法

之前在面试中被问到过两次Java中文件读入输出怎么写,当时只记得一个大概,没有办法很清晰的说出一个条理,今天特地看出总结了一下这方面的内容,想要写出来给大家分享. 首先文件读入输出流常用有三种:FileInputStream/FileOutputStream,FileReader/FileWriter,RandomAccessFile.下面具体列出一些简单的例子参考: 基础篇: 1. FileRead fr = new FileReader(filename);   String s;   wh

Java用GDAL读写shapefile的方法示例_java

GDAL介绍 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它还有一系列命令行工具来进行数据转换和处理. GDAL官方网址:http://www.gdal.org/,它能支持当前流行的各种地图数据格式,包括栅格和矢量地图,具体参考官方网站.该库使用C/C++开发,在Java中使用需要自己编译,具体编译过程这里就不说了,下面来看看本文的主要内容吧. Java使用G