• system.out是标准输出流
  • **system.in**是标准输入流
  • java输出语句允许输出一个赋值语句 如int x=3;sout(x*=4); ->12

    输出

  • 最简单的就是System.out.println()

    格式化输出

    double x = 10000.0 / 3.0;
    System.out.printf("%8.2f",x); // 3333.33
    8修饰符即输出8宽度,不足前面补空格。.2表示小数精度为2,四舍五入 %f即输出float型

  • 修饰符m :输出m宽度,不足前面补空格

  • 修饰符.m:取小数点后m位,四舍五入
  • 修饰符0m:输出m宽度,不足前面补0
  • 修饰符-m:输出m宽度,左对齐,后面补空格


输入

Scanner

  • 要读取标准输入流,需要构造一个Scanner对象,并且与**标准输入流System.in**相关联
    • Scanner 类定义在 **java.util.Scanner**
  • next...()是读取输入流中内容的方法
    • nextLine():读取一行,并且保留输入流中的空格,然后返回字符串类型
    • next():读取一行,遇到空格便结束读取
    • nextInt():读取一个整数,并且返回
  • hasNext():判断用户还有没有输入,没有的话返回-1
    • hasNextLine() hasNextInt() hasNextDouble() ...这些衍生方法即判断是否有符合要求的有效输入,如是否还有整型数据的输入,没有整型输入即便是其他输入也会结束返回-1
  • 注意next…()方法读取完一次后读取位置就会后移,并不是结束读取。但是不能使用nextLine,会出错
  • close:关闭输入流。凡是IO流的类如果不关闭会一直占用资源,应该记得用完就及时关闭养成习惯 ```java Scanner scanner = Scanner(System.in); if(scanner.hasnext()){ String name = scanner.nextLine(); } scanner.close();
  1. ---
  2. <a name="nVNjV"></a>
  3. #### 读写文件
  4. ```java
  5. Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8");
  6. //之后可以使用next等方法获取内容
  7. /*注意Paths.get()方法的路径参数是一个字符串,所以传入File对象是不行的。 String.valueOf(file)方法可以将File对象转为字符串型 */
  8. //----------------------------------------------------------------------
  9. PrintWriter out = new PrintWriter("file.txt","UTF-8");// 如果文件不存在,则创建该文件

IO获取标准输入流

  • 远不如Scanner方便
    try{
    InputStreamReader input=new InputStreamReader(System.in);
    BufferedReader reader=new BufferedReader(input);
    String s;
    while((s=reader.readLine())!=null)             {
           System.out.println(s);  }
    reader.close(); 
    }
    catch (IOException e){
    System.out.println(e);
    }