当前位置: 首页 > 知识库问答 >
问题:

将EBCDIC转换为ASCII的java程序

叶衡虑
2023-03-14
Step 1: Convert ASCII file to EBCDIC using the following command :

 dd if=sampleInput.txt of=ebcdic.txt conv=ebcdic

 sampleInput.txt has following line :

input 12 12
public class CoboDataFilelReaderTest {

 public static void main(String[] args) throws IOException {

     int line;
     InputStreamReader rdr = new InputStreamReader(new FileInputStream("/Users/rr/Documents/workspace/EBCDIC_TO_ASCII/ebcdic.txt"), java.nio.charset.Charset.forName("ibm500"));
        while((line = rdr.read()) != -1) {
            System.out.println(line);
    }
    }
 }
115
97
109
112
108
101
32
49
50
32
49
50

共有1个答案

刘瑞
2023-03-14

通过调用rdr.read(),可以读取一个字节。如果您希望读取文本的一个字符而不是它的数字表示,可以将其转换为如下所示的字符:

int numericChar;
InputStreamReader rdr = new InputStreamReader(new FileInputStream("/Users/rr/Documents/workspace/EBCDIC_TO_ASCII/ebcdic.txt"), java.nio.charset.Charset.forName("ibm500"));
while((numericChar = rdr.read()) != -1) {
        System.out.println((char) numericChar);
}

如果将每个numericchar作为一个字节写入一个文件,那么这两个文件看起来是一样的。但是您是在写控制台而不是文件,所以它将内容表示为数字,而不是将其解释为字符。

如果希望逐行输出内容,可以如下所示:

int numericChar;
InputStreamReader rdr = new InputStreamReader(new FileInputStream("/Users/rr/Documents/workspace/EBCDIC_TO_ASCII/ebcdic.txt"), java.nio.charset.Charset.forName("ibm500"));
while((numericChar = rdr.read()) != -1) {
    System.out.print((char) numericChar);
}
 类似资料:
  • 问题内容: 我应该通过使用Java将EBCDIC文件转换为ASCII。到目前为止,我有以下代码: 文件描述如下: 我们可以忽略每一行的前2个字节。问题是字节存在USAGE IS COMP,因为读者无法正确转换它们,我想我应该将它们读取为字节或其他内容,尽管我不知道如何。 问题答案: 如果我正确地解释了这种格式,则您的二进制文件格式具有固定长度的记录。其中一些记录不是字符数据(COBOL计算字段?)

  • 我们有PHP服务器代码,在iSeries中端执行SQL语句。 以下是SQL查询的简化版本 查询执行得很好,问题是当使用诸如“sometext”“title”这样的静态字段/值时,结果在PHP中返回时,它们不是所需的格式 谢了! 编辑 根据bucks的建议,我们将用户配置文件CCSID更改为37,而不是65535 解决方案是将用户配置文件改为使用CCSID37,并将服务器作业改为使用CCSID37。

  • 我尝试过使用python 2.6将EBCDIC转换为ASCII,但在这方面存在许多问题,比如压缩字段没有得到转换,记录计数增加。 是否有任何方法转换EBCDIC文件压缩字段到ASCII格式。

  • 我正在尝试使用Apache Beam中JRecord中的CobolIoProvider类将EBCDIC文件转换为ASCII。 我正在使用的代码: 代码根据需要读取和转换文件。我只能从本地系统读取cobolfilename和copybookname,它们基本上分别是EBCDIC文件和copybook的路径。但是,当我试图从GCS读取文件时,它失败了,FileNotFoundException--“文

  • 问题内容: 我需要编写一个“简单”实用程序以将ASCII转换为EBCDIC吗? Ascii来自Java,Web和AS400。我周围有一个google,似乎找不到一个简单的解决方案(也许因为没有一个:()。我希望使用开源util或为已经编写的util付费。 这样吧? 谢谢, 史考特 问题答案: JTOpen是IBM Java工具箱的开源版本,它具有访问AS / 400对象的类的集合,包括用于访问本机