0 0

io的用法5

各位大神能写一个简单的io输入,  输出吗?
小弟是菜鸟没写过想找个参考参考!
2014年5月22日 23:50

5个答案 按时间排序 按投票排序

0 0

采纳的答案


//写入代码 str写入文件的数据 file文件
private static boolean write(String str, File file) {
FileOutputStream fo = null;
try {
if(!file.getParentFile().exists())
file.getParentFile().mkdirs();
if (!file.exists())
file.createNewFile();
if (str == null)
str = "";
fo = new FileOutputStream(file.getPath(), false);
str += "\r\n";
OutputStreamWriter osw = new OutputStreamWriter(fo, "UTF-8");
osw.write(str);
osw.flush();
return true;
} catch (Exception e) {
log.error(e.getMessage(),e);
return false;
} finally {
if (fo != null)
try {
fo.close();
} catch (IOException e1) {
log.error(e1.getMessage(),e1);
}
}
}

2014年5月23日 08:36
0 0

package FileIO0523; 
/**
* 不可以拷贝文件夹,图片 ,只可以 拷贝字符流
*/ 
 
import java.io.BufferedInputStream; 
import java.io.BufferedOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
 
/**
*  在一个方法中完成文件的复制
 
* @author Administrator
*
*/ 
public class copyinputoutput02 { 
 
    public static void main(String[] args) { 
         
        //源文件的地址 
        String path1 ="C:\\Users\\Administrator\\Desktop\\文件操作.rar"; 
        //copy的地址 
        String path2 = "F:\\file1\\文件操作.rar"; 
         
        File file1 = new File(path1); 
        File file2 = new File(path2); 
        copy02(file1,file2); 
        System.out.println("拷贝完成"); 
    } 
     
     
    public static void copy02(File file1,File file2){ 
         
        try{ 
            //读 
            FileInputStream fis= new FileInputStream(file1); 
            //创建输入缓冲流 
            BufferedInputStream bis = new BufferedInputStream(fis); 
            //根据读到文件的大小来创建数组 
            byte[] by = new byte[(int) (file1.length())]; 
            //读取 
            bis.read(by); 
            //关闭流 
            fis.close(); 
             
            //写 
            FileOutputStream fos = new FileOutputStream(file2); 
            //创建输出缓冲流 
            BufferedOutputStream bos = new BufferedOutputStream(fos); 
            //直接写保存在数组中的数据 
            bos.write(by); 
            //强制写出来 
            bos.flush(); 
            //关闭流空间 
            fos.close(); 
             
        }catch(Exception e){ 
            e.printStackTrace(); 
        } 
         
 
     
    } 
     
 
     

2014年5月30日 11:52
0 0

补充一个讲解Java读文件的链接:
http://www.importnew.com/11537.html

2014年5月26日 13:19
0 0

java.io包含四个基类,并且分为两种流:
字符流:Reader, Writer
字节流:InputStream, OutputStream
用来操作文件的读写都是基于上面四个基类,比如:
FileReader 和 FileWriter
如果要用到缓存,则再加上BufferedReader 和BufferedWriter
具体例子见lihao312同学的回复,已经非常详细了。

2014年5月24日 21:00
0 0

1、按字节读取文件内容
2、按字符读取文件内容
3、按行读取文件内容
4、随机读取文件内容
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader; 
public class ReadFromFile {
/**
   * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
   * @param fileName 文件的名
   */
public static void readFileByBytes(String fileName){
   File file = new File(fileName);
   InputStream in = null;
   try {
    System.out.println("以字节为单位读取文件内容,一次读一个字节:");
    // 一次读一个字节
    in = new FileInputStream(file);
    int tempbyte;
    while((tempbyte=in.read()) != -1){
     System.out.write(tempbyte);
    }
    in.close();
   } catch (IOException e) {
    e.printStackTrace();
    return;
   }
   try {
    System.out.println("以字节为单位读取文件内容,一次读多个字节:");
    //一次读多个字节
    byte[] tempbytes = new byte[100];
    int byteread = 0;
    in = new FileInputStream(fileName);
    ReadFromFile.showAvailableBytes(in);
    //读入多个字节到字节数组中,byteread为一次读入的字节数
    while ((byteread = in.read(tempbytes)) != -1){
     System.out.write(tempbytes, 0, byteread);
    }
   } catch (Exception e1) {
    e1.printStackTrace();
   } finally {
    if (in != null){
     try {
      in.close();
     } catch (IOException e1) {
     }
    }
   }
}
/**
   * 以字符为单位读取文件,常用于读文本,数字等类型的文件
   * @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下,/r/n这两个字符在一起时,表示一个换行。
     //但如果这两个字符分开显示时,会换两次行。
     //因此,屏蔽掉/r,或者屏蔽/n。否则,将会多出很多空行。
     if (((char)tempchar) != '/r'){
      System.out.print((char)tempchar);
     }
    }
    reader.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
   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) {
     }
    }
   }
}
/**
   * 以行为单位读取文件,常用于读面向行的格式化文件
   * @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) {
     }
    }
   }
}
/**
   * 随机读取文件内容
   * @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) {
     }
    }
   }
}
/**
   * 显示输入流中还剩的字节数
   * @param in
   */
private static void showAvailableBytes(InputStream in){
   try {
    System.out.println("当前字节输入流中的字节数为:" + in.available());
   } catch (IOException e) {
    e.printStackTrace();
   }
}

public static void main(String[] args) {
   String fileName = "C:/temp/newTemp.txt";
   ReadFromFile.readFileByBytes(fileName);
   ReadFromFile.readFileByChars(fileName);
   ReadFromFile.readFileByLines(fileName);
   ReadFromFile.readFileByRandomAccess(fileName);
}
}

2014年5月23日 00:07

相关推荐

    SEW_EFE32B网关模块profinet_IO使用方法.pdf

    在讲解SEW DFE32B网关模块的使用方法之前,我们首先需要了解几个概念和组件。 首先,PROFINET IO是一种工业通讯标准,用于实现自动化控制系统中的数据交换。它允许不同类型的数据交换,包括过程自动化、运动控制和...

    C/C++ IO基础 高级无头文件IO用法 C++

    C++的无头文件IO(2行代码)

    RocketIO的使用方法

    ### RocketIO的使用方法 #### 一、RocketIO概述 RocketIO是Xilinx公司推出的高速串行收发器技术,广泛应用于Xilinx的各种FPGA产品中。它支持多种高速通信标准,如PCI Express、SATA、SerDes等,并且具有高度可配置...

    DDRIO模块简要使用说明

    本文将深入探讨DDRIO的基本原理、配置方法以及实际应用中的注意事项。 DDRIO的设计理念是为了满足现代高速通信和存储系统对数据速率不断增长的需求。在传统的单边沿触发的数据传输中,数据只能在一个时钟周期内传输...

    网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO

    Java传统的`Socket`和`ServerSocket`类使用的就是阻塞IO。这种模型效率较低,因为CPU可能会浪费时间在等待数据上。 - **非阻塞IO**:非阻塞IO不会挂起进程,即使数据尚未准备好。Java NIO库引入了选择器(Selector...

    commons-io使用笔记

    在"commons-io使用笔记"中,我们可以探讨几个主要类的用法。 1. **FileUtils**: 这个类提供了大量静态方法来处理文件操作,如复制、移动、删除文件,读取文件内容,比较文件等。例如,`FileUtils.readFileToString...

    commons-io-2.2-API文档-中文版.zip

    赠送jar包:commons-io-2.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    commons-io-2.11.0-API文档-中文版.zip

    赠送jar包:commons-io-2.11.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    oracle IO 使用情况

    文件"查找数据库IO 使用情况.txt"可能包含了具体的SQL脚本或方法,用于识别和分析Oracle数据库中的高IO操作。通过执行和分析这些脚本,我们可以找出性能瓶颈,进而采取相应的优化措施,提升系统的整体性能。在日常...

    TIA博途中分布式IO ET200SP的使用方法.docx

    以下是对TIA博途中分布式IO ET200SP的使用方法的详细解释: 1. **添加PLC和子网**: - 首先在博途软件中创建一个新的项目,选择合适的CPU,例如1214C。默认情况下,DI(数字输入)和DQ(数字输出)地址会从0开始。...

    Linux文件IO跟标准IO总结

    通过阅读这些文档,初学者可以更全面地了解Linux下的IO机制,以便在实际编程中选择最适合的方法。无论是标准IO还是文件IO,都各有优势,理解它们的特性并根据需求灵活运用是成为熟练的Linux程序员的关键。

    JAVA_IO详解_包括讲解IO中各种流及其用法.pdf

    根据给定文件的内容,我们可以了解到文件中提到了多种IO流的使用和操作方法,例如BufferedReader、InputStreamReader、FileReader、BufferedWriter、OutputStreamWriter、FileWriter、FileInputStream、...

    Java IO commons-io-2.5.jar

    `commons-io-2.5.jar` 是Apache Commons项目的一部分,它提供了一系列增强和扩展了Java标准IO库的类和方法。这个库为开发者提供了更高效、更便捷的方式来执行常见的文件、目录和流操作。 一、Java IO 基础 Java IO ...

    mcgs批量自动生成IO监视表.zip,能够自动生成IO监视界面,此代码仅供学习参考

    这个“mcgs批量自动生成IO监视表.zip”压缩包提供了一种高效的方法来创建IO监视界面,特别适用于西门子PLC系统的应用。该工具能够显著减少程序员的工作量,通过自动化处理来提高开发效率。 首先,我们要理解IO表...

    commons-io-2.8.0-API文档-中英对照版.zip

    使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    魏德米勒远程IO.pdf

    魏德米勒远程IO选型手册,平替ES200SP

    common-io-3.1.1-API文档-中文版.zip

    赠送jar包:common-io-3.1.1.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    commons-io-1.3.2-API文档-中文版.zip

    赠送jar包:commons-io-1.3.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    commons-io-2.5-API文档-中文版.zip

    赠送jar包:commons-io-2.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    commons-io-1.4.jar.zip_io流jar

    1. **FileUtils**: 提供了大量静态方法来操作文件,如复制、移动、删除、比较文件等,方便且易于使用。 2. **IOUtils**: 包含了许多处理流的工具方法,比如读取流到字符串、关闭流、复制流等,可以减少代码量并提高...

Global site tag (gtag.js) - Google Analytics