java 文件及流读取
在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,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,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 = "rn".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){} } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |