`

java多种方式读写文件

    博客分类:
  • Java
阅读更多

main 函数:

import java.io.*;
import java.util.Vector;

import cn.com.test.byteio.ReadFromFile;
/*
  *
拷贝文件1 的内容到文件2 中(readFileByByte(), 文件可以是任何形式;
  *
除了按字节读写外,其他都用TXT 文件测试,只测试读,输出到console
  */

public class Byte_test {
   
public static void main(String[] args){
         String filename = "F:\\jiegou.png";
        String filecopy = "F:\\copy.png";
        String filetxt = "F:\\111.txt";
        WriteToFile wtf =
new WriteToFile();
        wtf.WriteByByte(filename, filecopy);
        ReadFromFile.readFileByBytes(filetxt);
        System.out.println(" ****************************** ");
        ReadFromFile.readFileByChars(filetxt);
        System.out.println(" ****************************** ");
        ReadFromFile.readFileByLines(filetxt);
        System.out.println(" ****************************** ");
        ReadFromFile.readFileByRandomAccess(filetxt);
    }
}

ReadFromFile 类,实现读取文件:

package cn.com.test.bytetest;
import java.io.*;

public class ReadFromFile{
    InputStream in =
null ;
   
public   ReadFromFile(String filename){
        in =
this .getClass().getResourceAsStream(filename);
    }
   
/*
     *
获取文件(读)的剩余可用长度AvailableByte(String filename)
     * return int
     * @param filename
     */

    @SuppressWarnings("finally")
   
public static int AvailableByte(String filename){
        File file =
new File(filename);
       
int filelength = 0;
       
try {
            InputStream is =
new FileInputStream(file);
            filelength = is.available();
            System.out.println("
文件长度:"+filelength);       
         }
catch (IOException e) {
            e.printStackTrace();
        }
finally {
           
return filelength;   
        }

    }
   
/*
     *
按字节读取文件 ReadByByte(String filename)
     *
一次可以读取多个字节多用于图片、视频等非文本文档
     * @paramfilename
     */

   
public   void readFileByByte(String filename){
       
       
try {
            File file =
new File(filename);
            InputStream in =
null ;
            in =
new FileInputStream(file);
           
int count = 0,verdict = 0;
            count = ReadFromFile.AvailableByte(filename);
           
byte [] sbyte = new byte [count];
           
while ((verdict = in.read(sbyte)) != -1){
            System.out.write(sbyte,0,count);
            }
            }
catch (IOException e) {
                e.printStackTrace();
             }
finally {
               
if (in != null ){
                   
try {
                        in.close();
                    }
catch (IOException e1) {
                    }
                }
            }
            System.out.println("*************");
        }
   
/**
    *
以字符为单位读取文件readFileByChars(String fileName)
    *
常用于读文本,数字等类型的文件
    *
@param fileName 文件名
    */

   
public static void readFileByChars(String fileName){
        File file =
new File(fileName);
        Reader reader =
null ;
       
try {
            System.out.println("
以字符为单位读取文件内容,一次读一个字节:");
           
// 一次读一个字符
            reader = new InputStreamReader( new FileInputStream(file));
           
int tempchar;
           
while ((tempchar = reader.read()) != -1){
            
// 对于windows 下,rn 这两个字符在一起时,表示一个换行。
            //
但如果这两个字符分开显示时,会换两次行。
            //
因此,屏蔽掉r ,或者屏蔽n 。否则,将会多出很多空行。
            if ((( char )tempchar) != 'r'){
            System.out.print((
char )tempchar);
            }
            }
            reader.close();
            }
catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println(" ");
       
try {
            System.out.println("
以字符为单位读取文件内容,一次读多个字节:");
           
// 一次读多个字符
            char [] tempchars = new char [30];
           
int charread = 0;
            reader =
new InputStreamReader( new FileInputStream(fileName));
           
// 读入多个字符到字符数组中,charread 为一次读取字符数
            while ((charread = reader.read(tempchars))!=-1){
           
// 同样屏蔽掉r 不显示
            if ((charread == tempchars.length)&&(tempchars[tempchars.length-1] != 'r')){
            System.out.print(tempchars);
            }
else {
           
for ( int i=0; i<charread; i++){
           
if (tempchars[i] == 'r'){
           
continue ;
            }
else {
            System.out.print(tempchars[i]);
            }
            }
            }
            }
           
            }
catch (Exception e1) {
                e1.printStackTrace();
                }
finally {
                   
if (reader != null ){
                       
try {
                            reader.close();
                        }
catch (IOException e1) {
                        }
                    }
                System.out.println(" ");
                }
        }
   
/**
     *
以行为单位读取文件readFileByLines(String fileName)
    *
常用于读面向行的格式化文件
    *
@param fileName
    */

   
public static void readFileByLines(String fileName){
        File file =
new File(fileName);
        BufferedReader reader =
null ;
       
try {
             System.out.println("
以行为单位读取文件内容,一次读一整行:");
            reader =
new BufferedReader( new FileReader(file));
            String tempString =
null ;
           
int line = 1;
           
// 一次读入一行,直到读入null 为文件结束
            while ((tempString = reader.readLine()) != null ){
           
// 显示行号
            System.out.println("line " + line + ": " + tempString);
            line++;
            }
            reader.close();
            }
catch (IOException e) {
                e.printStackTrace();
                }
finally {
                   
if (reader != null ){
                       
try {
                            reader.close();
                        }
catch (IOException e1) {
                        }
                    }
                    System.out.println(" ");
                }
        }
       
/**
        *
随机读取文件内容readFileByRandomAccess
        *
@param fileName
        */

       
public static void readFileByRandomAccess(String fileName){
            RandomAccessFile randomFile =
null ;
            
try {
                System.out.println("
随机读取一段文件内容:");
               
// 打开一个随机访问文件流,按只读方式
                randomFile = new RandomAccessFile(fileName, "r");
               
// 文件长度,字节数
                long fileLength = randomFile.length();
                
// 读文件的起始位置
                int beginIndex = (fileLength > 4) ? 4 : 0;
               
// 将读文件的开始位置移到beginIndex 位置。
                randomFile.seek(beginIndex);
               
byte [] bytes = new byte [10];
               
int byteread = 0;
                
// 一次读10 个字节,如果文件内容不足10 个字节,则读剩下的字节。
                //
将一次读取的字节数赋给byteread
                while ((byteread = randomFile.read(bytes)) != -1){
                    System.out.write(bytes, 0, byteread);
                }
            }
catch (IOException e){
                 e.printStackTrace();
            }
finally {
               
if (randomFile != null ){
                   
try {
                        randomFile.close();
                    }
catch (IOException e1) {
                    }
                }
            }
        }
       
    }

WriteToFile 类 ,实现拷贝功能:

package cn.com.test.bytetest;
import java.io.*;
public class WriteToFile {
   
public OutputStream os = null ;
   
public WriteToFile(){
   
    }
   
   
public void WriteByByte(String filename1,String filename2){
        File filei =
new File(filename2);
        File fileo =
new File(filename1);
       
       
int ver = 0;
       
byte [] sbyte = new byte [1000];
       
       
try {
            FileInputStream fis =
new FileInputStream(fileo);
           
            FileOutputStream fos =
new FileOutputStream(filei);
           
while ((ver = fis.read(sbyte)) != -1){
                fos.write(sbyte, 0, ver);
                System.out.println("
传输一段,长度1000");
             }
           
if (fis!= null )fis.close();
           
if (fos!= null )fos.close();
        }
catch (IOException e){
            e.printStackTrace();
        }
       
       
       
    }
}

由于多种方式写文件是重复性工作,没有涉及;

API

JAVA_FILERW_API

 

分享到:
评论

相关推荐

    Java 读写Ini文件

    在Java中,虽然没有内置的Ini文件处理库,但我们可以借助第三方库如JIniFile或者Apache Commons Configuration来实现读写Ini文件的功能。 首先,让我们了解Ini文件的基本结构。Ini文件由多个节(Section)组成,每...

    java读写xml文件

    ### Java读写XML文件知识点详解 #### 一、概述 在Java编程中,对XML文件进行读取与写入是一项非常常见的任务。XML(可扩展标记语言)是一种用于标记数据的语言,非常适合用来存储和传输数据。Java提供了多种API来...

    java实现modbus读写.pdf

    Modbus协议支持多种通信方式,包括串行通信、以太网通信和无线通信等。 Java实现Modbus读写 Java实现Modbus读写主要涉及到以下几个步骤: 1. 导入Modbus库 在Java中实现Modbus读写需要导入Modbus库,例如...

    在Java中读写Excel文件

    在Java中读写Excel文件是一项常见的任务,尤其是在数据处理、报表生成或数据分析等场景下。Apache POI是一个广泛使用的开源库,它允许开发者使用Java语言来处理Microsoft Office格式的文件,包括Excel(XLS和XLSX)...

    java读写xml文件的方法

    ### Java读写XML文件的方法详解 #### 一、概述 在Java编程中,XML(Extensible Markup Language,可扩展标记语言)是一种广泛使用的数据交换格式。由于其良好的跨平台特性和自描述性,使得XML成为了许多应用程序...

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

    随着Java的发展,不同版本提供了多种方式来处理文件读写,这使得开发者可以根据实际需求选择最合适的方法。本文将重点探讨Java在不同版本中所提供的文件读写方式,并对其进行对比分析。 #### 一、JDK 1.0 中的文件...

    java操作文件读写

    本文将深入探讨Java中各种文件读写的方式,以及如何在读写Word文档时解决可能出现的乱码问题。 首先,Java提供了多种文件读写的API,包括`java.io`包下的`FileReader`、`FileWriter`、`BufferedReader`、`...

    hdf5文件结构以及基于java的读写

    ### HDF5 文件结构以及基于 Java 的读写 #### HDF 概述 HDF(Hierarchical Data Format)是一种自我描述、多对象的文件格式,专为高效地存储和分发科学数据而设计。它由美国国家超级计算应用中心(NCSA)开发,...

    java读写文件

    首先,Java提供了多种方式来读写文件。最基础的是使用`java.io`包中的`File`类来创建、读取和写入文件。`File`对象可以表示文件或目录路径,并提供了诸如是否存在、大小、修改时间等属性的访问方法。例如,我们可以...

    java读写文件避免中文乱码.docx

    Java 读写文件避免中文乱码 Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的...

    nc文件读写 java版本

    - 在Java中,通常使用Unidata的`ucar`库来处理NetCDF文件,其中`ucar.nc2`包提供了NetCDF文件的读写API。 - `NetcdfFile`类是主要的接口,用于打开和访问NetCDF文件。可以通过`NetcdfFile.open()`方法提供文件路径...

    java多种方式读取文件.doc

    总结来说,Java提供了多种方式来读取文件,选择哪种方法取决于文件类型和具体需求。字节流适合处理二进制数据,而字符流则更适合处理文本内容。在处理大量数据时,使用缓冲和流控制可以提高效率。在JavaScript的Node...

    java中多种方式读文件,追加文件内容,对文件的各种操作

    本文将详细介绍Java中多种读取文件内容的方法,以及如何追加文件内容。 首先,我们来看读取文件内容的方式: 1. **按字节读取文件内容**: 这种方法适用于读取二进制文件,如图片、音频或视频文件。通过`...

    JAVA IO流文件读写大全下载

    这些类提供了多种方法来读写文件,如read()、write()、close()等。 * 读取文件:通过FileInputStream类的read()方法可以读取文件中的字节,并将其存储在一个数组中。 * 写入文件:通过FileOutputStream类的write()...

    dbf-jdbc-wisecoders,JAVA 读写DBF文件工具包

    `dbf-jdbc-wisecoders`是一个Java库,它提供了对DBF文件的读写功能,使得开发者能够通过Java语言方便地操作这些文件。 这个工具包的主要特点和功能包括: 1. **JDBC接口**:`dbf-jdbc-wisecoders`通过提供一个类似...

    Java读写xml java 读写xml文件操作, 简单易懂

    Java提供了多种读写XML文件的方法,包括SAX、DOM、StAX以及JAXB等。本文将基于提供的文件信息,深入探讨如何利用Java进行XML文件的读取与写入,重点介绍DOM(Document Object Model)方式的操作。 #### DOM解析XML...

    java读写mpp文件的开源包

    它支持多种版本的Microsoft Project文件,包括.MPP和.MPT格式。在描述中提到的是`mpxj`的3.1版本,这是一个稳定且功能丰富的版本,能够帮助开发者轻松地处理项目数据。 使用`mpxj`,我们可以执行以下关键操作: 1....

Global site tag (gtag.js) - Google Analytics