当前位置: 首页 > news >正文

java.awt.FontFormatException: java.nio.BufferUnderflowException

Font awardFont = Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);

使用如上语句创建字体时出现问题。java.awt.FontFormatException: java.nio.BufferUnderflowException异常表明在处理字体数据时出现了缓冲区下溢(Buffer Underflow)的情况。这通常发生在尝试读取字体数据时,缓冲区的容量比所需数据少,导致无法从缓冲区中读取足够的字节。可能问题如下:

  • 字体文件损坏:字体文件可能已损坏或不完整,导致字体数据无法完全读取。尝试使用其他字体文件,或者重新下载/获取字体文件。

  • 字体加载方式:检查字体文件的加载方式。您可以尝试使用不同的方式加载字体文件,例如直接从文件系统加载而不是从JAR文件中加载,或者通过URL加载字体文件。

  • 字体格式不兼容:确保字体文件的格式受Java支持。常见的受支持格式包括TrueType (.ttf)和OpenType (.otf)。如果字体文件不是这些格式之一,可能会导致异常。

我的错误均不是这些问题,比较低级。原本是根据文件创建字体,改为输入流后对应代码逻辑没有进行更改,导致某一段代码中,使用同一个流创建了两个字体,这会导致第一个输入流创建完之后遇到了输入流的尾部,导致第二个字体无法被正确创建。

【修改前】

InputStream footSongFontFile = getClass().getResourceAsStream(Constants.FONT_PATH + "SanJiZiHaiSongGBK-2.ttf");
Font footSongFont = Font.createFont(Font.TRUETYPE_FONT, footSongFontFile).deriveFont(60f);
Font _footSongFont = Font.createFont(Font.TRUETYPE_FONT, footSongFontFile).deriveFont(50f);

【修改后】

InputStream footSongFontFile = getClass().getResourceAsStream(Constants.FONT_PATH + "SanJiZiHaiSongGBK-2.ttf");
InputStream _footSongFontFile = getClass().getResourceAsStream(Constants.FONT_PATH + "SanJiZiHaiSongGBK-2.ttf");
Font footSongFont = Font.createFont(Font.TRUETYPE_FONT, footSongFontFile).deriveFont(60f);
Font _footSongFont = Font.createFont(Font.TRUETYPE_FONT, _footSongFontFile).deriveFont(50f);

相关文章:

java.awt.FontFormatException: java.nio.BufferUnderflowException

Font awardFont Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);使用如上语句创建字体时出现问题。java.awt.FontFormatException: java.nio.BufferUnderflowException异常表明在处理字体数据时出现了缓冲区下溢(Buf…...

C++ 枚举类型 ← 关键字 enum

【知识点:枚举类型】● 枚举类型(enumeration)是 C 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。 ● 枚举元素作为常量,它们是有值的。C 编译时,依序对枚举元素赋整型值 0,1,2,3,…。 下面代…...

MySQL故障排查与优化

一、MySQL故障排查 1.1 故障现象与解决方法 1.1.1 故障1 1.1.2 故障2 1.1.3 故障3 1.1.4 故障4 1.1.5 故障5 1.1.6 故障6 1.1.7 故障7​ 1.1.8 故障8 1.1.9 MySQL 主从故障排查 二、MySQL优化 2.1 硬件方面 2.2 查询优化 一、MySQL故障排查 1.1 故障现象与解决方…...

如何做一个知识博主? 善用互联网检索

Google 使用引号: 使用双引号将要搜索的短语括起来,以便搜索结果中只包含该短语。例如,搜索 "人工智能" 将只返回包含该短语的页面。 排除词汇: 在搜索中使用减号 "-" 可以排除特定词汇。例如,搜索 "苹果 -手机" 将返回关于苹果公司的结果,但…...

《QT实用小工具·十》本地存储空间大小控件

1、概述 源码放在文章末尾 本地存储空间大小控件,反应电脑存储情况: 可自动加载本地存储设备的总容量/已用容量。进度条显示已用容量。支持所有操作系统。增加U盘或者SD卡到达信号。 下面是demo演示: 项目部分代码如下: #if…...

作为一个初学者该如何学习kali linux?

首先你要明白你学KALI的目的是什么,其次你要了解什么是kali,其实你并不是想要学会kali你只是想当一个hacker kali是什么: 只是一个集成了多种渗透工具的linux操作系统而已,抛开这些工具,他跟常规的linux没有太大区别。…...

多线程学习-线程池

目录 1.线程池的作用 2.线程池的实现 3.自定义创建线程池 1.线程池的作用 当我们使用Thread的实现类来创建线程并调用start运行线程时,这个线程只会使用一次并且执行的任务是固定的,等run方法中的代码执行完之后这个线程就会变成垃圾等待被回收掉。如…...

Linux第4课 Linux的基本操作

文章目录 Linux第4课 Linux的基本操作一、图形界面介绍二、终端界面介绍 Linux第4课 Linux的基本操作 一、图形界面介绍 本节以Ubuntu系统的GUI为例进行说明,Linux其他版本可自行网搜。 图形系统进入后,左侧黄框内为菜单栏,右侧为桌面&…...

堆排序解读

在算法世界中,排序算法一直是一个热门话题。推排序(Heap Sort)作为一种基于堆这种数据结构的有效排序方法,因其时间复杂度稳定且空间复杂度低而备受青睐。本文将深入探讨推排序的原理、实现方式,以及它在实际应用中的价…...

docker + miniconda + python 环境安装与迁移(详细版)

本文主要列出从安装dockerpython环境到迁移环境的整体步骤。windows与linux之间进行测试。 简化版可以参考:docker miniconda python 环境安装与迁移(简化版)-CSDN博客 目录 一、docker 安装和测试 二、docker中拉取miniconda&#xff…...

蓝桥杯刷题第八天(dp专题)

这道题有点像小学奥数题,解题的关键主要是: 有2种走法固走到第i级阶梯,可以通过计算走到第i-1级和第i-2级的走法和,可以初始化走到第1级楼梯和走到第2级楼梯。分别为f[1]1;f[2]1(11)1(2)2.然后就可以循环遍历到后面的状态。 f[i…...

【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】

2024.4.1 Monday 目录 4.DQL查询数据(重点!)4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名&#xff08…...

Linux:权限篇

文章目录 前言1.用户2.文件的权限管理2.1 修改文件的权限2.2 修改文件的拥有者2.3 修改文件的所属组 3.file指令4.umask指令4.目录的权限管理总结 前言 Linux权限在两个地方有所体现,一种是使用用户:分为root超级用户员与普通用户。另一个是体现在文件的…...

Lua热更新(xlua)

发现错误时检查是否:冒号调用 只需要导入asset文件夹下的Plugins和Xlua这两个文件即可,别的不用导入 生成代码 和清空代码 C#调用lua using Xlua; 需要引入命名空间 解析器里面执行lua语法 lua解析器 LuaEnv 单引号是为了避免引号冲突 第二个参数是报错时显示什么提示…...

并查集(基础+带权以及可撤销并查集后期更新)

并查集 并查集是一种图形数据结构,用于存储图中结点的连通关系。 每个结点有一个父亲,可以理解为“一只伸出去的手”,会指向另一个点,初始时指向自己。一个点的根节点是该点的父亲的父亲的..的父亲,直到某个点的父亲…...

基于 Java 的数据结构和算法 (不定期更新)

JavaIsBestLang 数据结构 Collection 是 Java 中的接口,被多个泛型容器接口所实现。在这里,Collection 是指代存放对象类型的数据结构。 ArrayList 函数名功能size()返回 this 的长度add(Integer val)在 this 尾部插入一个元素add(int idx, Integer …...

考研回忆录【二本->211】

备考时长差不多快一年半,从22年的11月底开始陆陆续续地准备考研,因为开始的早所以整个备考过程显得压力不是很大,中途还去一些地方旅游,我不喜欢把自己绷得太紧。虽然考的不是很好,考完我甚至都没准备复试,…...

【XCPC笔记】2023 (ICPC) Jiangxi Provincial Contest——ABCIJKL 做题记录

补题 赛后gym练习及补题,gym链接:2023 (ICPC) Jiangxi Provincial Contest – Official Contest 另外,D题我也打算找机会学习写下,C题的博弈论还需要好好理解,感觉都是比较有趣的数学问题 补题顺序如下 补题L [Zhang …...

猫头虎分享已解决Bug || **URLError (URL错误)** 全方位解析

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...

如何使用极狐GitLab 启用自动备份功能

本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何极狐GitLab 自…...

VMware Workstation 16保姆级教程:Windows Server 2019虚拟机安装全流程(含避坑指南)

VMware Workstation 16实战指南:Windows Server 2019虚拟机高效部署与深度优化 在数字化转型浪潮中,本地虚拟化环境搭建已成为开发者和运维人员的核心技能。作为业界标杆的VMware Workstation 16与Windows Server 2019的组合,能够完美模拟企业…...

从DVP到VGA:基于FPGA的OV7670图像采集与实时显示系统设计

1. OV7670摄像头与DVP接口基础 OV7670是一款经典的VGA分辨率图像传感器,在嵌入式视觉领域应用广泛。我第一次接触这款摄像头是在2015年的一个智能门铃项目上,当时就被它小巧的体积和简单的接口所吸引。这款传感器最大支持640x480分辨率,输出格…...

从零到一:构建你的第一个智能体应用实战指南

1. 为什么你需要一个智能体应用? 想象一下这样的场景:每天早上你的手机自动整理当天的重要会议和待办事项,根据你的日程推荐最佳出行路线;工作时自动汇总行业动态和关键邮件;晚上回家前提前打开空调并推荐符合你口味的…...

通义千问多模态检索系统:图文视频混合输入全解析

通义千问多模态检索系统:图文视频混合输入全解析 1. 多模态检索的行业痛点与解决方案 在信息爆炸的时代,传统文本检索系统面临三大核心挑战: 跨模态匹配失效:用户用文字描述"红色跑车在沙漠驰骋",系统却返…...

别再只盯着采样率了!用STM32H723的ADC做高精度FFT分析,这些坑我帮你踩过了

STM32H723高精度FFT实战:从ADC采样到频谱分析的工程化实现 频谱分析在工业振动监测、音频处理、电力系统谐波检测等领域有着广泛应用。STM32H723系列凭借其高性能ADC和浮点运算单元,为嵌入式实时频谱分析提供了硬件基础。但实际工程中,从ADC…...

ComfyUI-WanVideoWrapper:AI视频生成性能优化的终极指南

ComfyUI-WanVideoWrapper:AI视频生成性能优化的终极指南 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 在AI视频生成领域,显存限制和部署复杂性一直是开发者面临的核心挑…...

新手别怕!用Vivado仿真Verilog的8个经典电路,从JK触发器到频率计保姆级复盘

Vivado实战:从JK触发器到频率计的Verilog仿真全指南 刚接触FPGA开发的同学们,是否经常遇到这样的困境:明明理解了Verilog语法,却在Vivado仿真时频频报错?或是仿真波形与预期完全不符,却找不到问题所在&…...

AI算法Excel可视化终极指南:如何用电子表格深度解析人工智能原理

AI算法Excel可视化终极指南:如何用电子表格深度解析人工智能原理 【免费下载链接】ai-by-hand-excel 项目地址: https://gitcode.com/gh_mirrors/ai/ai-by-hand-excel 你是否曾被复杂的AI算法公式和抽象概念困扰,想要找到一种更直观的学习方式&a…...

CentOS 7 编译 Linux 5.15 内核遇 BTF 报错?别慌,这份保姆级排错指南帮你搞定 dwarves 和 pahole

CentOS 7 编译 Linux 5.15 内核 BTF 报错全攻略:从 dwarves 编译到环境修复 在 CentOS 7 上手动编译较新版本的 Linux 内核(如 5.15 系列)时,启用 BTF(BPF Type Format)功能经常会遇到各种依赖问题。本文将…...

收藏!国内大厂大模型人才招聘真相,小白/程序员入门必看

在大模型技术飞速迭代的当下,国内各大互联网大厂对大模型高端人才的投入力度已然拉满,几乎每家头部企业都推出了针对顶尖人才的专项招聘计划,而这些计划的核心共性,就是“高薪兜底”搭配“高门槛筛选”,成为行业内最引…...