java输入输出

System.out.printf("%s:%d", name,age);


一、标准输入输出

1、标准输出

System.out.println("hell,world!");


2、标准输入

通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in 关联

示例:

import java.util.Scanner;
public class InputTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		System.out.println("what's your name");
		String name=in.nextLine();
		System.out.println("how old are you?");
		int age=in.nextInt();
		System.out.println(name+":"+age);
		
	}

}

3、格式化输出

printf()和format()

format方法可以用于PrintStream或PrintWrtier对象,其中也包括System.out对象

d表示十进制数、s表示字符创、c表示字符、f表示浮点数、x表示十六进制整数、o表示八进制整数、b表示布尔、h表示散列吗、tx表示时间、

System.out.printf("%s:%d", name,age);
System.out.format("%s:%d",name,age);

4、formatter类

在java中,所有新的格式化功能都由java.util.Formatter类处理。

5、String.format()

参考c中的sprintf()方法,以生成格式化的String对象。String.format()是一个static方法,接受与Formatter.format()方法一样的参数,但是返回

一个String对象。

String.format("%d,%d,%s",id1,id2,msg);

 

二、文件输入输出

任何自InputStream或Reader派生而来的类都包含名为read()的基本方法,用于读取单个字节或者字节数组

1)文件输入

1、利用scanner类进行输入

Scanner的构造器可以接受任何类型的输入对象,包括File对象,InputStream,String对象

Scanner in=new Scanner(new File("D:\\test.txt"));

2、InputStream类型

主要面向字节的I/O功能

InputStream的作用是用来表示那些从不同数据源产生输入的类。这些数据包括:1)字节数组、2)String对象、3)文件

4)管道、5)一个由其他种类的流组成的序列,以便我们可以将它们收集合并到一个流内。6)其他数据源

每一个数据源都有相对应的InputStream子类,例如ByteArrayInputStream,StringBufferInputStream,FileInputStream

PipedInputStream、SequenceInputS、FilterInputs。另外,FilterInputStream也属于一种InputStream

3、Reader类型

主要面向字符和兼容unicode的I/O功能

4、缓冲输入文件:面向字符使用Reader类型

BufferedReader fin=new BufferedReader(new FileReader("D:\\2.txt"));
String s;
StringBuilder sb=new StringBuilder();
While((s=fin.readline)!=null){
sb.append(s+"\n");
}
fin.close();

其中字符串sb用来累计文件的全部内容(包括必须添加的换行符,因为readLine()已将他们删掉)
5、格式化内存输入

要读取格式化数据,可以使用DataInputStream,它是一个面向字节的I/O类,因此使用InputStream而不是Reader类。

例:

import java.io.*;
public class FormattedMemoryInput {

	/**
	 * @param args
	 */
	public static void main(String[] args)
	throws IOException{
		// TODO Auto-generated method stub
		try{
			DataInputStream in= new DataInputStream(
					new ByteArrayInputStream(
						BufferedInputFile.read(
							"D:\\workspace\\Test\\src\\io\\FormattedMemoryInput.java").getBytes()));
			while(in.available()!=0)
				System.out.print((char)in.readByte());
			
		}catch(EOFException e){
			System.err.println("End of Stream");
		}
	}

}

BufferedInputFile为ByteArrayInputStream提供字节数组。

2)文件输出

任何自OutputStream或Writer派生而来的类都包含名为writer()的基本方法,用于写单个字节或者字节数组。

1、利用PrintWriter类输出

PrintWriter out=new PrintWriter(new  File("D:\\test.txt"));

2、OutputStream类型

主要面向字节的I/O功能

该类别决定了输出所要去的往的目标:字节数组、文件或管道。另外FilterOutputStream为“装饰器”类提供了一个基类。

ByteArrayOutputstream、FileOutputstream、PipedOutputstream、FilterOutputStream

3、Writer类型

主要面向字符和兼容unicode的I/O功能

 

4、文件缓冲输出

首先创建一个与制定文件连接的FileWriter,然后用BufferedWriter将其包装用以缓冲输出。

PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(file)));


5、格式化数据输出

DataOutputStream out=new DataOutputStream(
				new BufferedOutputStream(
						new FileOutputStream("Data.txt")));



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值