java.lang包该包定义了一个名为System的类

更多详细内容:

1 . 读取控制台输入

在Java 1.0中,完成控制台输入的惟一途径是字节流,
Java 2中读取控制台输入的首选方法是字符流,它使程序容易符合国际标准并且易于维护。

Java中,控制台输入由从System.in读取数据来完成。
为获得属于控制台的字符流,在BufferedReader对象中包装System.in

BufferedReader(Reader inputReader)

这里, inputReader是链接被创建的BufferedReader实例的流。 Reader是一个抽象类。它的一个具体的子类是InputStreamReader,该子类把字节转换成字符。为获得链接System.in的一个InputStreamReader的对象,用下面的构造函数:

InputStreamReader(InputStream inputStream)

因为System .in引用了InputStream 类型的对象,它可以用于inputStream。综上所述,下面的一行代码创建了与键盘相连的BufferedReader对象。

BufferedReader br = 
new BufferedReader(new InputStreamReader(System.in));

当该语句执行后, br是通过System.in生成的链接控制台的字符流

1.1. 读取字符

从BufferedReader读取字符,用read()。观察返回值 当遇到流的末尾时它返回
-1。你可以看到,它要引发一个IOException异常

int read( ) throws IOException

class BaaRead {
public static void main(String args[])throws IOException
{
char c;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter characters, 'c' to quit.");
do {
c = (char) br.read();
System.out.println(c);
} while(c != 'q');}
}
下面是程序运行:
Enter characters, 'q' to quit.
123abcq
1
2
3
a
b
c
因为System.in在默认情况下是以行来缓冲的。这意味着在你键入ENTER以前实际上是没有输入的。
1.2 .读取字符串

从键盘读取字符串,使用readLine()。它是BufferedReader 类的成员。它的通常形式如下:

String readLine( ) throws IOException 它返回一个String对象

class BRReadLines {
public static void main(String args[])throws IOException224 
{
BufferedReader br = new BufferedReader(new  InputStreamReader(System.in));
String str;
System.out.println("Enter lines of text.");
System.out.println("Enter 'stop' to quit.");
do {
str = br.readLine();
System.out.println(str);
} while(!str.equals("stop"));
}
}
4 .向控制台写输出
  1. 因为PrintStream是从OutputStream派生的输出流,它同样实现低级方法write( ),同时控制台输出由前面描述过的print( ) 和 println( )来完成最为简单。尽管System.out是一个字节流。
4.1 . PrintWriter类

Java推荐的向控制台写数据的方法是用PrintWriter流。 PrintWriter是基于字符的类。用基于字符类向控制台写数据使程序更为国际化。
PrintWriter定义了多个构造函数,我们所用到的一个如下:

PrintWriter(OutputStream outputStream, boolean flushOnNewline)

这里, outputStream是OutputStream类的对象, flushOnNewline控制Java是否在println( )方法被调用时刷新输出流。如果flushOnNewline为true,刷新自动发生,若为false,则不发生。
PrintWriter支持所有类型(包括Object)的print( )和println( )方法,这样,你就可以像用System.out那样用这些方法。 如果遇到不同类型的情况, PrintWriter方法调用对象的toString( )方法并打印结果。
用PrintWriter向外设写数据,指定输出流为System.out并在每一新行后刷新流。
例如这行代码创建了与控制台输出相连的PrintWriter类。

PrintWriter pw = new PrintWriter(System.out, true);

下面的应用程序说明了用PrintWriter处理控制台输出的方法:

import java.io.*;
public class PrintWriterDemo {
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("This is a string");
int i = -7;
pw.println(i);
double d = 4.5e-7;
pw.println(d);
}
}
该程序的输出如下:
This is a string
-7
4.5E-7

用System.out来向控制台输出,虽然没了国际化的感觉但 往往我们都用它。

6 .文件的读写

在Java中,所有的文件都是字节形式的Java提供从文件读写字节的方法。而且, Java允许在字符形式的对象中使用字节文件流。这项技术在上一个文章描述。本次说明基本的文件输入/输出。

FileInputStream (String fileName) throws FileNotFoundException
FileOutputStream (String fileName) throws FileNotFoundException

fileName指定需要打开的文件名。当你创建了一个输入流而文件不存在时,引
发FileNotFoundException异常。对于输出流,如果文件不能生成,则引发FileNotFoundException异常。如果一个输出文件被打开,所有原先存在的同名的文件被破坏。

当你对文件的操作结束后,需要调用close( )来关闭文件

void close( ) throws IOException

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值