Ich habe versucht, node-jt400 (IFS lesen)

IFS read Versuchen Sie, die auf IFS erstellten Dateien (SJIS, UTF8, UTF16) mit dem folgenden Java-Code von Node zu lesen.

IfsWrite.java


public class IfsWrite {

	public static void main(String[] args) {
			AS400 as400  = new AS400("192.168.X.XXX" ,"MYUSER" ,"MYPASS");
			final String BR = System.getProperty("line.separator");

			IFSFileOutputStream fileutf8;
			IFSFileOutputStream fileutf16;
			IFSFileOutputStream filesjis;
			try {
				String str1 = "Teststring 1. Zeile abc";
				String str2 = "Teststring 2. Zeile";
				String str = str1 + BR + str2;

				byte[] utf8 = str.getBytes("UTF-8"); 
				byte[] utf16 = str.getBytes("UTF-16");
				byte[] sjis = str.getBytes(Charset.forName("Shift_JIS"));

				fileutf8 = new IFSFileOutputStream(as400, "/myIfsFolder/java-utf8.txt",IFSFileOutputStream.SHARE_ALL, true,1208);
				fileutf8.write(utf8);
				fileutf8.close();

				fileutf16 = new IFSFileOutputStream(as400, "/myIfsFolder/java-utf16.txt",IFSFileOutputStream.SHARE_ALL, true,1200);
				fileutf16.write(utf16);
				fileutf16.close();

				filesjis = new IFSFileOutputStream(as400, "/myIfsFolder/java-sjis.txt",IFSFileOutputStream.SHARE_ALL, true,932);
				filesjis.write(sjis);
				filesjis.close();

			} catch (AS400SecurityException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
	}
}

Da iconv-lite für die Konvertierung von Zeichencode verwendet wird, installieren Sie es bitte vor der Ausführung.

npm install iconv-lite

IfsRaed.JS


var jt400 = require("node-jt400");
var express = require("express");
var iconv = require('iconv-lite');
var app = express();

var pool = jt400.pool({ host: '192.168.X.XXX', user: 'MYUSER', password: 'MYPASS' });

var server = app.listen(8888, function () {
  console.log("curl http://localhost:" + server.address().port + '/~');
});

app.get("/ifsReadSjis", function (req, res, next) {
  const ifs = pool.ifs();
  let ifsReadableStream = ifs.createReadStream("/myIfsFolder/java-sjis.txt").pipe(iconv.decodeStream("Shift_JIS"));
  let buffer = "";
  ifsReadableStream.on("data", (chunk) => {
    buffer += chunk;
  });
  ifsReadableStream.on("end", function () {
    res.send(buffer);
  });
});

app.get("/ifsReadUtf8", function (req, res, next) {
  const ifs = pool.ifs();
  let ifsReadableStream = ifs.createReadStream("/myIfsFolder/java-utf8.txt").pipe(iconv.decodeStream("UTF-8"));
  let buffer = "";
  ifsReadableStream.on("data", (chunk) => {
    buffer += chunk;
  });
  ifsReadableStream.on("end", function () {
    res.send(buffer);
  });
});

app.get("/ifsReadUtf16", function (req, res, next) {
  const ifs = pool.ifs();
  let ifsReadableStream = ifs.createReadStream("/myIfsFolder/java-utf16.txt").pipe(iconv.decodeStream("UTF-16"));
  let buffer = "";
  ifsReadableStream.on("data", (chunk) => {
    buffer += chunk;
  });
  ifsReadableStream.on("end", function () {
    res.send(buffer);
  });
});

Dies ist das Ausführungsergebnis.

nodejt25.png

Recommended Posts

Ich habe versucht, node-jt400 (IFS lesen)
Ich habe versucht, node-jt400 (IFS schreiben)
Ich habe versucht, node-jt400 (Programme)
Ich habe versucht, node-jt400 (ausführen)
Ich habe versucht, node-jt400 (Transaktionen)
Ich habe versucht, node-jt400 (Umgebungskonstruktion)
Ich habe versucht, node-jt400 (SQL Update)
Ich habe versucht, node-jt400 (SQL-Abfrage)
Ich habe versucht, Tomcat zu setzen
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten
Ich habe FizzBuzz ausprobiert.
Ich habe JHipster 5.1 ausprobiert
[Ich habe es versucht] Spring Tutorial
Ich habe versucht, Autoware auszuführen
Ich habe versucht, Gson zu benutzen
Ich habe versucht, TestNG zu verwenden
Ich habe Spring Batch ausprobiert
Ich habe versucht, Galasa zu benutzen
Ich habe versucht, CSV mit Outsystems zu lesen und auszugeben
Ich kann es lesen! RxJava
Ich habe DI mit Ruby versucht
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe Spring State Machine ausprobiert
Ich habe Rails Anfänger ausprobiert [Kapitel 1]
Ich habe versucht, Apache Wicket zu verwenden
Ich habe module-info.java in java.base gelesen
Ich habe versucht, Java REPL zu verwenden
Ich habe versucht, den Quellcode zu analysieren
Ich habe das FizzBuzz-Problem ausprobiert
Ich habe Rails Anfänger ausprobiert [Kapitel 2]
Ich habe UPSERT mit PostgreSQL ausprobiert.
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, Metaprogrammierung mit Java
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe Angular Tutorial + SpringBoot + PostgreSQL ausprobiert
Ich habe etwas versucht, das als rekursive Suche bezeichnet wird
Ich habe versucht, Spring + Mybatis + DbUnit zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
[K8s] Ich habe versucht, zwischen Pods zu kommunizieren!
Ich habe eine morphologische Analyse mit MeCab versucht
Ich habe ein wenig digdags docker.run_options ausprobiert
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe die Quelle von Integer gelesen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe versucht, Domino11 in CentOS7 zu integrieren
Ich habe die Quelle von Long gelesen
Ich habe das Java-Framework "Quarkus" ausprobiert.
[Rails] Ich habe versucht, die Anwendung zu löschen
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe Javas Micro-Benchmarking-Tool JMH ausprobiert
Ich habe versucht, JWT in Java zu verwenden
Ich habe GraphQL mit Spring Boot ausprobiert
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe die Quelle von Short gelesen