猿问

用Java编码文件

我正在用NetBeans用Java开发一个应用程序,但是文件编码遇到了问题。


该应用程序的目的是为其他软件创建所需的文件(项目文件)(LedshowYQ 2016)。LedshowYQ 2016与LED标牌一起使用。


我面对的问题是txs文件。这些文件用于在标牌上发送文本。除了所需的文本外,它们还包含格式和颜色信息。


在下面的链接中,您可以下载一个txs文件。 txs文件


当我在notpad中打开文件时,得到以下信息:


-8 1 3 1

-7 0 -1 0 0 0 0 0

-9 2 0 0 2 0 1

rvs

X       StyleNameNormal text

SizeDoubleFontNameTahomaColorclWhiteUnicode Size  -9 2 0 0 2 0 2

rvs

E       StyleNameLeftStandardOptionsrvpaoDoNotWantReturns Tabs   -9 2 0 0 2 0 4

rvs

    -9 0 0 0 0 0 7

0 1 0 8 0 0

D u m m y   T e x t ) 

但是,当我在Sublime Text中打开它时,得到以下信息:

2d38 2031 2033 2031 0d0a 2d37 2030 202d

3120 3020 3020 3020 3020 300d 0a2d 3920

3220 3020 3020 3220 3020 310d 0a72 7673

0d0a 5800 0000 0e01 0953 7479 6c65 4e61

6d65 060b 4e6f 726d 616c 2074 6578 740a

5369 7a65 446f 7562 6c65 0218 0846 6f6e

744e 616d 6506 0654 6168 6f6d 6105 436f

6c6f 7207 0763 6c57 6869 7465 0755 6e69

636f 6465 0904 5369 7a65 020c 0000 2d39

2032 2030 2030 2032 2030 2032 0d0a 7276

730d 0a45 0000 000e 0109 5374 796c 654e

616d 6506 044c 6566 7408 5374 616e 6461

7264 0807 4f70 7469 6f6e 730b 1572 7670

616f 446f 4e6f 7457 616e 7452 6574 7572

6e73 0004 5461 6273 0e00 0000 2d39 2032

2030 2030 2032 2030 2034 0d0a 7276 730d

0a02 0000 000e 002d 3920 3020 3020 3020

3020 3020 370d 0a30 2031 2030 2038 2030

2030 0d0a 4400 7500 6d00 6d00 7900 2000

5400 6500 7800 7400 2920 

从上面我知道文件是十六进制格式。因此,我最初的解决方案是在String变量中添加将不会更改的十六进制代码,从文本字段中获取文本,将其转换为十六进制,将其添加到String变量中,然后将其写入新的txs文件中。

但是当我在Ledshow中打开它时,它不会显示...


然后,我想到了以某种方式制作键盘记录程序。我从文本字段中获取了文本,读取了所有字符,并使用开关语句将每个字符转换为十六进制值。所有这些值都添加到初始String变量中并写入txs文件中。


仍然,结果是相同的。它不能显示在Ledshow中。


我使用了StandardChaset的所有可用选项,但没有运气。


然后,我认为文件的格式可能不同于崇高文本中的格式,因此我在将十六进制代码转换为字节之前将其写入文件。


byte[] b = hexTextConv.getBytes(StandardCharsets.UTF_16LE);

//

//

//

try (FileOutputStream fos = new FileOutputStream(filePath)) {

   fos.write(b);

}catch (FileNotFoundException ex) {

   Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);

}

结果是相同的!:)为了满足我的好奇心,我以Sublime文本打开了创建的文件,并且输出与以前一样是十六进制值。


有谁知道如何解决这个问题?我真的没有主意,因此我无法前进。


德玛西亚99
浏览 168回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答