在Java语言的IO编程中,读取文件是分两个步骤:1、将文件中的数据转换为流,2、读取流内部的数据。其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用输入流对象中的read方法即可实现了。

使用输入流进行编程时,代码一般分为3个部分:1、创建流对象,2、读取流对象内部的数据,3、关闭流对象。下面以读取文件的代码示例:

import java.io.*;

/**

* 使用FileInputStream读取文件

*/

public class ReadFile1 {

public static void main(String[] args) {

FileInputStream fis = null;     //声明流对象

try{

fis = new FileInputStream("e:\\a.txt");          //创建流对象

//读取数据,并将读取到的数据存储到数组中

byte[] data = new byte[1024]; //数据存储的数组

int i = 0; //当前下标

//读取流中的第一个字节数据

int n = fis.read();

//依次读取后续的数据

while(n != -1){ //未到达流的末尾

//将有效数据存储到数组中

data[i] = (byte)n;

//下标增加

i++;

//读取下一个字节的数据

n = fis.read();

}

//解析数据

String s = new String(data,0,i);

//输出字符串

System.out.println(s);

}catch(Exception e){

e.printStackTrace();

}finally{

try{

//关闭流,释放资源

fis.close();

}catch(Exception e){}

}

}

}

下面的示例代码是使用另外一个read方法实现读取的代码:

import java.io.FileInputStream;

/**

* 使用FileInputStream读取文件

*/

public class ReadFile2 {

public static void main(String[] args) {

//声明流对象

FileInputStream fis = null;

try{

//创建流对象

fis = new FileInputStream("e:\\a.txt");

//读取数据,并将读取到的数据存储到数组中

byte[] data = new byte[1024]; //数据存储的数组

int i = fis.read(data);

//解析数据

String s = new String(data,0,i);

//输出字符串

System.out.println(s);

}catch(Exception e){

e.printStackTrace();

}finally{

try{

//关闭流,释放资源

fis.close();

}catch(Exception e){}

}

}

}

使用输出流进行编程的步骤是:

1、建立输出流

建立对应的输出流对象,也就是完成由流对象到外部数据源之间的转换。

2、向流中写入数据

将需要输出的数据,调用对应的write方法写入到流对象中。

3、关闭输出流

在写入完毕以后,调用流对象的close方法关闭输出流,释放资源。

下面以FileOutputStream为例子说明输出流的使用。示例代码如下:

import java.io.*;

/**

* 使用FileOutputStream写文件示例

*/

public class WriteFile1 {

public static void main(String[] args) {

String s = "Java语言";

int n = 100;

//声明流对象

FileOutputStream fos = null;

try{

//创建流对象

fos = new FileOutputStream("e:\\out.txt");

//转换为byte数组

byte[] b1 = s.getBytes();

//换行符

byte[] b2 = "\r\n".getBytes();

byte[] b3 = String.valueOf(n).getBytes();

//依次写入文件

fos.write(b1);

fos.write(b2);

fos.write(b3);

} catch (Exception e) {

e.printStackTrace();

}finally{

try{

fos.close();

}catch(Exception e){}

}

}

}

java 文件及流读取的更多相关文章

  1. Java - 文件(IO流)

    Java - 文件 (IO)   流的分类:     > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter     ...

  2. java 文件和流

    最近工作中涉及到一些文件操作的东西,闲下来刚好做个整理. 控制台IO 在控制台使用键盘作为标准输入并使用终端窗口(在windows下,经常是命令提示符或者是PowerShell:在linuxx/OS ...

  3. java HttpServletRequest 重复流读取

    在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常.   在过滤器中通过流读取出用 ...

  4. java HttpServletRequest 重复流读取

    在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常.   在过滤器中通过流读取出用 ...

  5. Java文件与流测试

    import java.io.File; import java.io.InputStreamReader; import java.math.BigDecimal; import java.io.B ...

  6. java使用io流读取windows文件乱码问题

    出现原因: 在IDEA中,使用 FileReader 读取项目中的文本文件.由于IDEA的设置,都是默认的 UTF-8 编码,所以没有任何 问题. 但是,当读取Windows系统中创建的文本文件时,由 ...

  7. Java程序设计---io流读取文件内容并将其逆值输出到控制台

    import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileR ...

  8. Java使用IO流读取TXT文件

    通过BufferedReader读取TXT文件window系统默认的编码是GBK,而IDE的编码多数为UTF-8,如果没有规定new InputStreamReader(new FileInputSt ...

  9. Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader

    字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...

随机推荐

  1. How to pass selected records from form to dilog in AX 2012

    static void main(Args args) { FormDataSource formDataSource; ; if(args.record().TableId == tablenum( ...

  2. 如何在intellj Idea中给新建的项目添加jar包?

    1. 假如我加入joda.jar 2. 找到发布的你想要的jar包,下载! 3. 解压刚下载的jar包,复制 4. 在intellj idea中新建一个java项目,然后创建一个专门用于放jar的li ...

  3. box_shadow

    .tip{width:485px; height:260px; position:absolute;top:10%; left:30%;background:#fcfdfd; box-shadow:1 ...

  4. iOS:WebKit内核框架的应用与解析

    原文:http://www.cnblogs.com/fengmin/p/5737355.html 一.摘要: WebKit是iOS8之后引入的专门负责处理网页视图的框架,其比UIWebView更加强大 ...

  5. JavaScript:window窗口对象

    在JavaScript中,window表示的就是一个窗口对象.所以在整个处理过程之中,所有的操作都是以弹框为主 的.范例1:使用警告框 <script type="text/javas ...

  6. jQuery对象与DOM对象之间的转换(转)

    什么是jQuery对象? —就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法. 比如: $(“#test”).html()   意思 ...

  7. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  8. 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数

    2.4.1 用NPOI操作EXCEL关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数   NPOI教程:http://www.cnb ...

  9. 第八篇 Integration Services:高级工作流管理

    本篇文章是Integration Services系列的第八篇,详细内容请参考原文. 简介在前面两篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcu ...

  10. C#线程系列讲座(2):Thread类的应用

    一.Thread类的基本用法 通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法.可以通过Thread类的的构造方法传递一个无参数,并且不返回值(返 ...