You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中读取代码文件并保留缩进信息写入新文件?

解决方案

一、修复文件读取逻辑(保留缩进)

你当前的readFile方法使用StringTokenizer和错误的Scanner分隔符设置,会直接破坏缩进和空格信息。要完整保留原文件的缩进格式,核心是按行读取整行内容,而非拆分字符。以下是修正后的实现:

读取文件到列表(保留每行缩进)

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

private static List<String> readFile(String inputFilename) throws IOException {
    List<String> lines = new ArrayList<>();
    try (BufferedReader reader = new BufferedReader(new FileReader(inputFilename))) {
        String line;
        while ((line = reader.readLine()) != null) {
            // 直接将整行(包括前置缩进、空格)加入列表
            lines.add(line);
        }
    }
    return lines;
}

将列表内容写入新文件(保留缩进)

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

private static void writeFile(List<String> lines, String outputFilename) throws IOException {
    try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilename))) {
        for (String line : lines) {
            writer.write(line);
            writer.newLine(); // 写入换行符,保持原文件行结构
        }
    }
}

二、语法高亮工具推荐

Java 相关

  • RSyntaxTextArea:Java Swing生态下的开源文本组件,支持多种编程语言语法高亮,可直接集成到桌面应用中,能精准识别缩进并渲染对应格式。
  • IntelliJ IDEA内置高亮引擎:如果是在IDE环境下处理代码展示,可通过IntelliJ SDK调用其语法高亮模块,支持对缩进、关键字、注释的精准着色。

Python 相关

  • Pygments:Python生态中最常用的语法高亮库,支持数百种语言,可将代码转换为带高亮标记的HTML、LaTeX等格式,能完整保留原代码的缩进结构。

内容的提问来源于stack exchange,提问作者thtkoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:32:33