一、控制台的输入
读取控制台的输入,首选方式为字符流。
- BufferedReader(Reader inputReader)
- ↓↓
- InputStreamReader(InputStream inputStream)
- ↓↓
- new BufferedReader(new InputStreamReader(System.in))
1.读取字符
从BuffererdReader读取字符,用read()方法
该方法每次执行都从输入流获取一个字符,以整型返回
下面例子表示了从控制台输入一个字符,然后从控制台输出
- public static void main(String[] args) {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- try {
- System.out.println((char) br.read());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
2.读取字符串
从BufferedReader读取字符串,用readLine()方法,该方法返回一个String对象
- public static void main(String[] args) {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- try {
- System.out.println(br.readLine());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
二、控制台输出
- void write(int byteval)
write不常用,常用的为print和println
三、PrintWriter
尽管Java 允许用System.out向控制台写数据,但建议仅用在调试程序时或在例题中,这 在本书中得到充分体现。对于实际的程序,Java 推荐的向控制台写数据的方法是用 PrintWriter流。 |
PrintWriter定义了多个构造函数,我们所用到的一个如下:
- //flushOnNewline 控制Java是否在println方法被调用时刷新输出流
- PrintWriter(OutputStream outputStream, boolean flushOnNewline)
写个例子看下:
- public static void main(String[] args) {
- PrintWriter pw=new PrintWriter(System.out, true);
- pw.println("1231");
- pw.println(true);
- pw.println(123123);
- }
四、文件的读写
在Java中,所有的文件都是字节形式。
两个最常用的流类:FileInputStream 和 FileOutputStream
- FileInputStream(String fileName) throws FileNotFoundException
- FileOutputStream(String fileName) throws FileNotFoundException
filename是文件名 当创建了对象而文件不存在时 抛出异常
当文件操作结束之后要调用close()关闭文件
- void close( ) throws IOException
读文件,可以使用在FileInputStream中定义的read( ) 方法
- int read( ) throws IOException
从文件读取一个字节,以整数形式返回,当读到文件尾端时 返回-1;
下面的例子 说明了read的用法,输出了文本的全部内容
- public static void main(String[] args) {
- try {
- FileInputStream inputStream = new FileInputStream("D:\\test.txt");
- int i;
- do {
- i = inputStream.read();
- if(i!=-1)
- System.out.println((char)i);
- }while (i != -1);
- inputStream.close();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
向文件中写数据,需用FileOutputStream定义的write()方法
- void write(int byteval) throws IOException
接下来写个例子 看下怎么使用write()
- public static void main(String[] args) {
- FileInputStream inputStream;
- FileOutputStream outputStream;
- String inputfilename = "D:\\test.txt";
- String outputfilename = "E:\\test.txt";
- try {
- inputStream = new FileInputStream(inputfilename);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.err.println("文件不存在!");
- return;
- }
- try {
- outputStream = new FileOutputStream(outputfilename);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.err.println("文件不存在!");
- return;
- }
- int i = -1;
- do {
- try {
- i = inputStream.read();
- if (i != -1)
- outputStream.write(i);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return;
- }
- } while (i != -1);
- System.out.println("写入完毕");
- try {
- inputStream.close();
- outputStream.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }