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