上一篇                     
               
			  Java如何输出内容?
- 后端开发
- 2025-06-03
- 2437
 在Java中打印输出通常使用System.out.println()方法,括号内放入字符串、变量或表达式,System.
 out.println(“Hello World”); 会输出并换行,若无需换行,可用System.out.print(),支持格式化输出如printf()。
 
基础打印方法
Java通过System类的out对象提供三种核心打印方法:
System.out.println()
 
功能后自动换行
适用场景:需换行的输出 
System.out.println("Hello, World!"); // 输出后换行
System.out.println(100);             // 打印数字
System.out.println(3.14);            // 打印浮点数 
输出:
Hello, World!
100
3.14System.out.print()
 
功能不换行
适用场景:连续输出(如拼接字符串) 
System.out.print("Java"); 
System.out.print(" Programming"); 
// 输出:Java Programming 
System.out.printf()
 
功能:格式化输出(类似C语言printf)
语法:System.out.printf("格式字符串", 参数);
常用占位符:

- %s:字符串
- %d:整数
- %f:浮点数(可控制小数位,如- %.2f)
- %n:换行符
示例:
String name = "Alice";
int age = 30;
double salary = 85000.50;
System.out.printf("Name: %s, Age: %d, Salary: %.2f %n", name, age, salary); 
输出:
Name: Alice, Age: 30, Salary: 85000.50高级输出方式
使用 String.format() 生成格式化字符串
 
String info = String.format("Date: %tF %nTime: %tT", new Date(), new Date());
System.out.print(info); 
输出(示例):
Date: 2025-10-05 
Time: 14:30:45日志工具(推荐生产环境使用)
通过java.util.logging或Log4j/SLF4J等框架记录日志,更灵活且可控:

import java.util.logging.Logger;
public class Demo {
    private static final Logger logger = Logger.getLogger(Demo.class.getName());
    public static void main(String[] args) {
        logger.info("Application started"); // 输出到控制台或文件
        logger.warning("Low memory detected");
    }
} 
写入文件(替代控制台输出)
try (PrintWriter writer = new PrintWriter("output.txt")) {
    writer.println("This is written to a file.");
} catch (FileNotFoundException e) {
    e.printStackTrace();
} 
特殊打印场景
打印数组内容
使用Arrays.toString()避免输出对象地址:
int[] numbers = {1, 2, 3};
System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3] 
打印对象信息
重写toString()方法自定义输出:
class Person {
    String name;
    int age;
    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}
Person p = new Person();
p.name = "Bob";
System.out.println(p); // 输出:Person{name='Bob', age=0} 
选择最佳打印方式的建议
| 场景 | 推荐方法 | 原因 | 
|---|---|---|
| 调试/简单输出 | System.out.println() | 简单快捷 | 
| 格式化输出(数字/日期) | System.out.printf() | 精确控制格式 | 
| 生产环境日志记录 | Logger(如SLF4J) | 支持分级、文件存储和过滤 | 
| 生成复杂字符串 | String.format() | 返回字符串,便于复用 | 
| 输出到文件 | PrintWriter | 持久化存储 | 
常见错误与规避
-  拼接性能问题 
 避免循环中使用拼接字符串:
 低效:for (int i=0; i<1000; i++) { s += i; }
 高效:使用StringBuilder
-  未关闭资源 
 使用PrintWriter等资源后务必关闭: try (PrintWriter w = new PrintWriter("file.txt")) { ... } // 自动关闭
-  日志级别混淆 
 生产环境避免使用System.out,改用Logger并设置级别(如INFO、ERROR)。
引用说明: 基于Oracle官方Java文档,参考《Java核心技术卷I》(Cay S. Horstmann著)及Java SE 17规范,日志实现部分遵循SLF4J官方最佳实践,文件操作符合Java NIO标准库设计。
 
  
			 
			 
			 
			 
			 
			 
			 
			