All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sta.cts.ConvEncoding Maven / Gradle / Ivy


package com.sta.cts;

import java.util.Vector;
import java.util.Enumeration;

import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import com.sta.mlogger.MLogger;

/**
 * 

Name: ConvEncoding

*

Description: Klasse zum Konvertieren der Kodierung einer Text- bzw. XML- Datei. *

*

Copyright: Copyright (c) 2004, 2012, 2014, 2016, 2017, 2019, 2021

*

Company: >StA-Soft<

* @author StA * @version 1.0 */ public class ConvEncoding { /** * Textdatei mit vorgegebenen Encoding in Textdatei mit ebenfalls vorgegebenem * Encoding konvertieren. * @param sfn Quelldateiname * @param senc Encoding der Quelldatei * @param dfn Zieldateiname * @param denc Encoding der Zieldatei * @throws IOException im Fehlerfall */ public static void convEnc4TXT(String sfn, String senc, String dfn, String denc) throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream(sfn), senc); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(dfn), denc); while (isr.ready()) { int i = isr.read(); osw.write(i); } osw.close(); isr.close(); } /** * XML-Datei (Encoding in der XML-Datei angegeben) in XML-Datei mit * vorgegebenem Encoding konvertieren. * @param s Name der Quell-XML-Datei * @param d Name der Ziel-XML-Datei * @param e Encoding der Ziel-XML-Datei * @throws IOException im Fehlerfall */ public static void convEnc4XML(String s, String d, String e) throws IOException { XMLScanner xs = new XMLScanner(); xs.init(s); xs.initH(null); try { XMLGenerator xg = new XMLGenerator(); xg.createXML(d, e); try { Object obj; while ((obj = xs.getToken()) != null) { if (obj instanceof XMLTag) { XMLTag t = (XMLTag) obj; if (t.isOpen()) { xg.openTag(t.getName()); Enumeration names = t.getAttrNames(); if (names != null) { while (names.hasMoreElements()) { String name = names.nextElement(); String value = t.getAttr(name); xg.putAttr(name, value); } } } if (t.isClose()) { xg.closeTag(t.getName()); } } else if (obj instanceof String) { xg.putContent((String) obj); } } } finally { xg.closeXML(); } } finally { xs.done(); } } /** * Analyse der Kommandozeilenparameter als Vector. * @param params Kommandozeilenparameter als Vector * @throws IOException im Fehlerfall */ public static void run(Vector params) throws IOException { if (params.size() == 4) { String sfn = (String) params.get(0); String senc = (String) params.get(1); String dfn = (String) params.get(2); String denc = (String) params.get(3); convEnc4TXT(sfn, senc, dfn, denc); } else if (params.size() == 3) { String s = (String) params.get(0); String d = (String) params.get(1); String e = (String) params.get(2); convEnc4XML(s, d, e); } else { throw new IOException("Missing parameter."); } } /** * Main-Methode. * @param args Kommandozeilenparameter */ public static void main(String[] args) { // ConvEncoding ce1 = new ConvEncoding(); Vector v = new Vector(); for (int i = 0; i < args.length; i++) { v.add(args[i]); } try { run(v); } catch (Exception e) { MLogger.err("", e); MLogger.err(""); MLogger.err("Usage (Text) : java ... ConvEncoding Src SrcEnc Dst DstEnc"); MLogger.err("Usage (XML) : java ... ConvEncoding Src Dst DstEnc"); MLogger.err(""); } } //=========================================================================== /** * Dummy-Constructor. */ protected ConvEncoding() { } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy