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

如何在Eclipse中获取文件路径以改写2D游戏开发用TXT地图文件?

解决Eclipse写入地图TXT文件的路径错误和代码问题

一、路径错误怎么改

你写的/maps/studentcenter.txt是系统绝对路径,找的是系统根目录下的maps文件夹,根本不是你Eclipse项目里的那个maps源文件夹。

改法:

  • 要是想写到项目根目录下的maps文件夹,用相对路径./maps/studentcenter.txt,但得先确保这个maps文件夹存在,不然代码会报错,提前加一段创建文件夹的代码:
    File dir = new File("./maps");
    if (!dir.exists()) {
        dir.mkdirs(); // 自动创建不存在的目录,包括多级目录
    }
    
  • 不建议直接写入源文件夹(比如Eclipse的src/maps),因为运行时源文件会被编译到classes目录,写入源文件夹可能干扰版本控制,优先写到项目根目录的独立文件夹里。

二、代码里的其他坑要填

除了路径,你的代码还有几个问题,导致生成不了想要的内容:

  1. 换行代码白写了:System.getProperty("line.seperator")不仅拼错了(是line.separator),而且只获取了换行符,没调用writer.write()写进去,所以最后所有内容会挤在一行。
  2. writer.write(0)写的不是字符'0',是ASCII码为0的控制字符,得改成writer.write("0")或者writer.write('0')。
  3. 没处理IO异常,最好用try-with-resources语法,不用手动关流,还能避免资源泄漏。

修正后的完整代码

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class MapWriter {
    public static void main(String[] args) {
        // 先创建maps文件夹,避免路径不存在
        File dir = new File("./maps");
        if (!dir.exists()) {
            dir.mkdirs();
        }
        
        // try-with-resources自动管理流,不用手动close
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("./maps/studentcenter.txt"))) {
            String lineBreak = System.getProperty("line.separator");
            for (int i = 0; i < 14; i++) {
                for (int j = 0; j < 24; j++) {
                    if (j != 23) {
                        writer.write("0 ");
                    } else {
                        writer.write("0");
                    }
                }
                // 写完一行就加换行
                writer.write(lineBreak);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

三、效果验证

运行代码后,去项目根目录的maps文件夹里找studentcenter.txt,里面就是14行,每行24个用空格分开的0,最后一个0后面没空格,自动换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:20:30