java基础——文件(IO)操作2

一、System.in和 System.out

    为了支持标准输入输出设备,Java定义了两个特殊的流对象:System.inSystem.out

System.in对应键盘,是 InputStream 类型的,程序使用 System.in 可以读取从键盘上输入的数据

System.out 键盘可以被当作一个特殊的输入流,显示器可以被当作一个特殊的输出流。

 

二、打印流——PrintStream、PrintWrite

 

PrintStream

     PrintStream类提供了一系列的 print 和 println 方法,可以实现将基本数据类型的格式转化成字符串输出,而不是输出原始的字节内容。

     PrintStream有下面几个构造方法:

     PrintStream(OutputStream out)
     //autoflush 控制,在 Java 中遇到换行符(\n)时是否自动清空缓冲区
     PrintStream(OutputStream out,boolean auotflush)
     //encoding :指定编码方式
     PrintStream(OutputStream out,boolean auotflush, String encoding)

PrintWriter

     IO包中提供的与 PrintStream 对应的类。构造方法:

     PrintWriter(OutputStream)
     PrintWriter(OutputStream, boolean)
     PrintWriter(Writer)
     PrintWriter(Writer, boolean)

示例:

import java.io.*;
public class SystemPrintDemo{
public static void main(String args[]){
	PrintWriter out = null;
	// 通过 System.out 为 PrintWriter 实例化
	out = new PrintWriter(System.out);
	// 向屏幕上输出
	out. print ("Hello World!");
	out.close();
	}

}

输出结果:

Hello World!


三、DataInputStream与DataOutputStream

        DataInputStream DataOutputStream提供了与平台无关的数据操作,通常会先通DataOutputStream按照一定的格式输出,再通过DataInputStream按照一定格式读入。

 

 示例:

     

 

代码实现:

import java.io.* ;
public class DataStreamDemo{
	
	public static void main(String[] args) throws IOException{
		
		// 将数据写入某一种载体
		DataOutputStream out = new DataOutputStream(new FileOutputStream("order.txt"));
		// 价格
		double[] prices = { 18.99, 9.22, 14.22, 5.22, 4.21 };
		// 数目
		int[] units = { 10, 10, 20, 39, 40 };
		String[] descs = { "T 恤杉", "杯子", "洋娃娃", "大头针", "钥匙链" };
		
		// 向数据过滤流写入主要类型
		for (int i = 0; i < prices.length; i++){
			
			// 写入价格,使用 tab 隔开数据
			out.writeDouble(prices[i]);
			out.writeChar('\t');
			// 写入数目
			out.writeInt(units[i]);
			out.writeChar('\t');
			// 写入产品名称,行尾加入换行符
			out.writeChars(descs[i]);
			out.writeChar('\n');
		}
		out.close();
		
		// 将数据读出
		DataInputStream in = new DataInputStream(new FileInputStream("order.txt"));
		double price;
		int unit;
		StringBuffer desc;
		double total = 0.0;
		try{
			// 当文本被全部读出以后会抛出 EOFException,中断循环
			while (true){
				
				// 读出价格
				price = in.readDouble();
				// 跳过 tab
				in.readChar();
				// 读出数目
				unit = in.readInt();
				// 跳过 tab
				in.readChar();
				char chr;
				// 读出产品名称
				desc = new StringBuffer();
				
				while ((chr = in.readChar()) != '\n'){
					desc.append(chr);
				}
				
				System.out.println("定单信息: " + "产品名称:"+desc+",\t 数量:"+unit+",\t 价格:"+price);
				total = total + unit * price;
			}
		}catch (EOFException e){
			System.out.println("\n 总共需要:" + total+"元");
		}

		in.close();
	}
}

执行结果:

        

 

参考资源:Java基础http://download.csdn.net/detail/xujiaolf/7541349

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值