• java学习笔记(九):Java 流(Stream)、文件(File)和IO


    Java 的控制台输入由 System.in 完成。

    为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流。需要import一下这个包

    import java.io.BufferedReader;

    下面是创建 BufferedReader 的基本语法:

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

    BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。

    实例:用 read() 方法从控制台不断读取单个字符直到用户输入 "q"。

     1 import java.io.*;
     2 
     3 public class Test{
     4     public static void main(String[] args) throws IOException{
     5         char c;
     6         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     7         System.out.println("输入字符, 按下 'q' 键退出。");
     8         do {
     9             c = (char)br.read();
    10             System.out.println(c);
    11         } while (c != 'q');
    12     }
    13 }

    运行:

    fffffg
    f
    f
    f
    f
    f
    g

    实例:读取和显示字符行直到你输入了单词"end"。

     1 import java.io.*;
     2 
     3 public class Test{
     4     public static void main(String[] args) throws IOException{
     5         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     6         String str;
     7         System.out.println("Enter lines of text.");
     8         System.out.println("Enter 'end' to quit.");
     9         do {
    10             str = br.readLine();
    11             System.out.println(str);
    12         } while (!str.equals("end"));
    13     }
    14 }

    运行:

    aaaa
    aaaa
    bbbbb
    bbbbb
    end
    end

    读写文件

    实例:InputStream 和 OutputStream 写入读取文件:

     1 import java.io.*;
     2 
     3 public class Test{
     4     public static void main(String[] args) throws IOException{
     5         /**
     6          * 写入文件
     7          */
     8         File f = new File("test.txt");
     9         //构建FileOutputStream对象,文件不存在自动新建
    10         FileOutputStream fop = new FileOutputStream(f);
    11         //构建OutputStreamWriter对象,参数可以指定编码默认编码是Windows的gbk
    12         OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");
    13         //写到缓冲区
    14         writer.append("中文输入:");
    15         //换行
    16         writer.append("
    ");
    17         //写到缓冲区
    18         writer.append("English");
    19         //close关闭写入流,会将缓冲区的内容写入到文件
    20         writer.close();
    21         //关闭输出流
    22         fop.close();
    23 
    24         /**
    25          * 读出文件
    26          */
    27         //构建FileInputStream对象
    28         FileInputStream fip = new FileInputStream(f);
    29         // 构建InputStreamReader对象,编码与写入相同
    30         InputStreamReader reader = new InputStreamReader(fip, "UTF-8");
    31         //建立一个字符串StringBuffer对象
    32         StringBuffer sb = new StringBuffer();
    33         while (reader.ready()){
    34             // 转成char加到StringBuffer对象中
    35             sb.append((char)reader.read());
    36         }
    37         //输出文件内容
    38         System.out.println(sb.toString());
    39         //关闭读取流
    40         reader.close();
    41         //关闭输入流,释放系统资源
    42         fip.close();
    43     }
    44 }

    运行输出:

    中文输入:
    English
  • 相关阅读:
    【开发者笔记】C#连接mysql问题记录
    【开发者笔记】揣摩Spring-ioc初探,ioc是不是单例?
    【开发者笔记】c# 调用java代码
    【数据库乱码】记录一下数据库乱码问题
    字符函数
    单行函数和多行函数
    rownum和rowid伪列
    排序子句
    单引号的转义
    逻辑运算符
  • 原文地址:https://www.cnblogs.com/zylq-blog/p/7742827.html
Copyright © 2020-2023  润新知