System系统类:
System类中有三个常量:
标准输出(显示器): public static final PrintStream out;
错误输出: public static final PrintStream err;
标准输入(键盘): public static final InputStream in;
输出的操作:
public class MAIN {
public static void main(String[] args) {
try{
Integer.parseInt("a");
}catch (Exception e){
System.out.println("out:" + e);
System.err.println("err :" + e);
}
}
}
err 和 out 是同一种类型的,如果是使用的工具进行输出,那么使用 err 进行错误输出 工具会进行红色字体的输出,而 out 则不会;
最早设置两个输出操作的目的是:
System.out是输出那些用户希望看见的信息;
System.err是输出那些用户不希望看见的信息。
如果有需要也可以修改输出内容的位置(不要随意去修改,仅供了解):
修改out的输出位置:public static void setOut(PrintStream out);
修改err的输出位置:public static void setErr(PrintStream err)。
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class MAIN {
public static void main(String[] args) throws Exception{
System.setErr(new PrintStream(new FileOutputStream(new File("D:" + File.separator + "Demo_2_15" + File.separator + "Copy.txt")))); // 改变err的输出位置
try{
Integer.parseInt("a");
}catch (Exception e){
System.out.println("out:" + e);
System.err.println("err :" + e); // 输出到文件中
}
}
}
System.in 键盘输入流:
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintStream;
public class MAIN {
public static void main(String[] args) throws Exception{
InputStream input = System.in; // 键盘输入流
System.out.print("请输入:");
byte[] data = new byte[1024];
int len = input.read(data); // 读取长度
System.out.println("内容显示:" + new String(data,0,len));
}
}
这种输入方式是有很大的缺陷的:当数据输入的长度超出接收的长度,那么数据就会显示不全。
例如将接收数组data的1024变为6:
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintStream;
public class MAIN {
public static void main(String[] args) throws Exception{
InputStream input = System.in; // 键盘输入流
System.out.print("请输入:");
byte[] data = new byte[6];
int len = input.read(data); // 读取长度
System.out.println("内容显示:" + new String(data,0,len));
}
}
那么这个输入就可能进行重复的输入流数据接收,而且在接收的时候还有可能会有输入中文的情况,如果处理不当,还可能出现乱码的问题。
所以System.in 只是提供一个标准输入,但是在使用的时候建议还是使用成熟的输入方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)