java io流的应用_如何操作java中的IO流的典型应用_java编程_javaIO流_课课家

尽管库内存在大量IO流类,可通过多种不同的方式组合到一起,但实际上只有几种方式才会经常用到。然而,必须小心在意才能得到正确的组合。下面这个相当长的例子展示了典型IO配置的创建与使用,可在写自己的代码时将其作为一个参考使用。注意每个配置都以一个注释形式的编号起头,并提供了适当的解释信息。

cca289c10349fa93b4bb0f88c5e8f775.png

//: iostreamDemo.java

// Typical IO Stream Configurations

import java.io.*;

import com.bruceeckel.tools.*;

public class IOStreamDemo {

public static void main(String[] args) {

try {

// 1. Buffered input file

DataInputStream in =

new DataInputStream(

new BufferedInputStream(

new FileInputStream(args[0])));

String s, s2 = new String();

while((s = in.readLine())!= null)

s2 += s + "\\n";

in.close();

// 2. Input from memory

StringBufferInputStream in2 =

new StringBufferInputStream(s2);

int c;

while((c = in2.read()) != -1)

System.out.print((char)c);

// 3. Formatted memory input

try {

DataInputStream in3 =

new DataInputStream(

new StringBufferInputStream(s2));

while(true)

System.out.print((char)in3.readByte());

} catch(EOFException e) {

System.out.println(

"End of stream encountered");

}

// 4. Line numbering & file output

try {

LineNumberInputStream li =

new LineNumberInputStream(

new StringBufferInputStream(s2));

DataInputStream in4 =

new DataInputStream(li);

PrintStream out1 =

new PrintStream(

new BufferedOutputStream(

new FileOutputStream(

"IODemo.out")));

while((s = in4.readLine()) != null )

out1.println(

"Line " + li.gETLineNumber() + s);

out1.close(); // finalize() not reliable!

} catch(EOFException e) {

System.out.println(

"End of stream encountered");

}

// 5. Storing & recovering data

try {

DataOutputStream out2 =

new DataOutputStream(

new BufferedOutputStream(

new FileOutputStream("Data.txt")));

out2.writeBytes(

"Here's the value of pi: \\n");

out2.writeDouble(3.14159);

out2.close();

DataInputStream in5 =

new DataInputStream(

new BufferedInputStream(

new FileInputStream("Data.txt")));

System.out.println(in5.readLine());

System.out.println(in5.readDouble());

} catch(EOFException e) {

System.out.println(

"End of stream encountered");

}

// 6. Reading/writing random Access files

RandomAccessFile rf =

new RandomAccessFile("rtest.dat", "rw");

for(int i = 0; i < 10; i++)

rf.writeDouble(i*1.414);

rf.close();

rf =

new RandomAccessFile("rtest.dat", "rw");

rf.seek(5*8);

rf.writeDouble(47.0001);

rf.close();

rf =

new RandomAccessFile("rtest.dat", "r");

for(int i = 0; i < 10; i++)

System.out.println(

"Value " + i + ": " +

rf.readDouble());

rf.close();

// 7. File input shorthand

InFile in6 = new InFile(args[0]);

String s3 = new String();

System.out.println(

"First line in file: " +

in6.readLine());

in6.close();

// 8. Formatted file output shorthand

PrintFile out3 = new PrintFile("Data2.txt");

out3.print("Test of PrintFile");

out3.close();

// 9. Data file output shorthand

OutFile out4 = new OutFile("Data3.txt");

out4.writeBytes("Test of outDataFile\\n\\r");

out4.writeChars("Test of outDataFile\\n\\r");

out4.close();

} catch(FileNotFoundException e) {

System.out.println(

"File Not Found:" + args[0]);

} catch(IOException e) {

System.out.println("IO Exception");

}

}

} ///:~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值