Java基础(17):常用类—System类的标准流重定向与常用方法
2017-04-25 22:33
435 查看
System类的作用
System 类提供了标准输入、标准输出和错误输出流。对外部定义的属性和环境变量的访问。
加载文件和库的方法。
还有快速复制数组的一部分的实用方法。
了解System.in 、 System.out 、System.err
它们都属于System类的静态变量。System.in 标准输入流(从键盘输入)
System.out 标准输出流 (输出到控制台)
System.err 标准错误输出流(输出的字体颜色是红色)
代码演示System.in:
//把标准输入作为扫描的数据源 Scanner sc = new Scanner(System.in); //将标准输入作为数据源 BufferedReader bis = new BufferedReader( new InputStreamReader(System.in));
代码演示System.out:
System.out是一个PrintStream(打印流),所以System.out.println()就是调用打印流中的println()方法。//简单使用System.out System.out.print("ABC");//不换行 System.out.println("DEF");//换行 //对System.out进行包装处理 Writer bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write("完成控制台输出"); bw.append("OKOKOKOKOK"); //等效于print() bw.flush();//刷出缓冲区上面代码中将System.out进行包装后,也能达到打印流中的效果,但功能一般,所以这里了解就好。
代码演示System.err:
System.public class Test { public static void main(String[] args) throws IOException { System.err.println("使用System.err"); BufferedWriter bwt = new BufferedWriter(new OutputStreamWriter(System.err)); bwt.write("和System.out有啥不同"); bwt.flush(); } }System.err输出的字体颜色是红色,最常见到的就是打印异常信息时,都是红色,就是使用该流来打印的。
System对标准流进行重定向:
原来的标准流默认是键盘输入和输出到控制台,重定向则是分配标准流,表示可以使用别的流作为标准。方法如下:
static voidsetIn(InputStream in)
static
void setOut(PrintStream ps)
static
void setErr(PrintStream ps)
代码演示setIn的作用:
//未对System.in进行重定向 public static void unSetIn() { Scanner sc = new Scanner(System.in); //判断是否有下一个输入项 while(sc.hasNext()) { String s = sc.next(); if(s.equalsIgnoreCase("end")) break; //结束判断 System.out.println(s); } }
//使用重定向之后 public static void setInTest() throws FileNotFoundException { //创建一个输入流 FileInputStream fis = new FileInputStream("D:\\MoreObject.txt"); //将该流重定向为标准输入 System.setIn(fis); Scanner sc2 = new Scanner(System.in); String s = null; while(sc2.hasNext()) { //控制台输出的内容是fis对象中的文件内容 System.out.println(sc2.next()); } }重定向System.in之前,以键盘作为标准输入,从控制台输入数据就在控制台打印数据。
重定向后,指向一个输入流,该流作为标准输入,所以控制台输出的是重定向的流指向的文件内容。
代码演示setOut的作用:
因为setErr和setOut使用方式一样,所以省略setErr。public class Test2 { public static void main(String[] args) throws FileNotFoundException { System.out.println("打印在控制台~~"); //true:不会覆盖目标文件内容 FileOutputStream fos = new FileOutputStream("F:\\setOutTest.txt",true); PrintStream ps = new PrintStream(fos); System.setOut(ps); //使用System.out // System.out.println("输出到哪里了1"); // System.out.println("输出到哪里了2"); // System.out.println("输出到哪里了3"); //该方法会覆盖内容,所以需要fos对象设置允许追加内容 // System.out.append(""); } }未重定向之前,输出内容到控制台。重定向后,输出内容到指定文件中。
需要注意,执行输出操作默认对目标文件内容进行覆盖,所以节点流连接数据源时,可以根据需求设置是否允许附加内容。
Systeml类的常用方法:
static long currentTimeMillis() | 返回以毫秒为单位的当前时间。 |
static void exit(int status) | 终止当前正在运行的 Java 虚拟机。 |
static Properties getProperties() | 获取当前系统的所有属性。 |
static String getProperty(String key) | 获取指定键指示的系统属性。 |
static int identityHashCode(Object x) | 返回给定对象的原始哈希码Hashcode() |
static void load(String filename) | 从动态库的本地文件中以指定的文件名加载代码文件。 |
static void loadLibrary(String libname) | 加载由 libname 参数指定的系统库。 |
static void setProperties(Properties props) | 将系统属性设置为 Properties 参数。 |
static String setProperty(String key, String value) | 设置指定键指示的系统属性。 |
static void setSecurityManager(SecurityManager s) | 设置系统安全性。 |
static long nanoTime() | 返回最准确的可用系统计时器的当前值,以毫微秒为单位 |
static String getenv(String name) | 获取指定的环境变量值。 |
static void gc() | 运行垃圾回收器。 |
相关文章推荐
- java基础--18 System类常用方法
- java 基础常用的 方法
- Java多线程基础篇二------常用方法
- 黑马程序员——高新技术---Java基础-常用类-正则表达式,Math类,Random类,System类,Date类
- java基础--StringBuffer类常用方法以及案例
- Java基础类库中String类常用的方法
- Java基础第十七天学习日记_Collections和Arrays的常用方法、高级for循环、可变参数、静态导入
- 黑马程序员-java基础-常用的类以及它的方法
- Java基础回顾 : 文件类中的一些常用的方法
- java在acm中常用基础技巧方法
- JAVA基础 day13 String类和StringBUffer类的常用方法 基本数据类型包装类的学习
- Java面向对象基础--String类中常用的方法
- 黑马程序员---2015.6.22java基础笔记---Collections---Arrays---方法的可变参数---常用类介绍
- 黑马程序员——java基础拾遗之IO流(一) 常用类及方法
- [Java基础]常用Java类方法
- 黑马程序员——Java语言基础——02.java语言基础组成(4)数组及常用排序方法
- Java基础:常用的JDBC连接数据库方法大全
- Java基础:String类之常用方法及使用注意事项
- Java基础之Object 常用方法
- JAVA_SE基础——63.String类的常用方法