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

使用java.io.FileWriter写入整数时出现Unclosed Character Literal错误求助

问题解决与实现方案

一、FileWriter写入报错原因及修复

你遇到的error: unclosed character literal错误,核心原因是char类型字面量只能用单引号包裹单个字符。代码里'10'、'20'、'30'都是多字符组合,违反了char类型的语法规则,编译器会判定为未闭合的字符字面量。

修复方案

如果要写入整数10、20、30,推荐两种简洁方式:

  1. 直接写入字符串形式(最常用):
FileWriter fw = new FileWriter("fw.txt");
fw.write("10 20 30"); // 用空格分隔整数,方便后续读取
fw.flush();
fw.close(); // 必须关闭流释放资源
  1. 拆分为单个字符的数组:
FileWriter fw = new FileWriter("fw.txt");
fw.write(new char[]{'1','0',' ','2','0',' ','3','0'});
fw.flush();
fw.close();

二、使用java.io.BufferedReader实现整数读写

注意:BufferedReader仅负责读取操作,写入需配合同属java.io包的BufferedWriter(IO流的分工设计决定了单独BufferedReader无法完成写入)。以下是完整的读写实现:

1. 写入整数到文件

通过BufferedWriter将整数转为字符串写入,用分隔符(如空格)区分每个整数:

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

public class IntegerWriteDemo {
    public static void main(String[] args) {
        int[] nums = {10, 20, 30, 40, 50};
        // try-with-resources语法自动关闭流,无需手动调用close()
        try (BufferedWriter bw = new BufferedWriter(new FileWriter("integers.txt"))) {
            for (int num : nums) {
                bw.write(String.valueOf(num));
                bw.write(" "); // 写入分隔符,方便读取时拆分
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. 用BufferedReader读取文件中的整数

读取文件内容,按分隔符拆分字符串后转为整数:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class IntegerReadDemo {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("integers.txt"))) {
            String line = br.readLine();
            if (line != null) {
                // 按任意空白字符拆分字符串,兼容多个空格/制表符的情况
                String[] numStrs = line.split("\\s+");
                for (String numStr : numStrs) {
                    int num = Integer.parseInt(numStr);
                    System.out.println("读取到整数:" + num);
                }
            }
        } catch (IOException | NumberFormatException e) {
            // 捕获IO异常和格式转换异常,避免程序崩溃
            e.printStackTrace();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:02:01