Shift-Java-Programm, das das JIS-Format sofort im UTF-8-Format ausgibt

** Wie benutzt man ** Sammeln Sie die Textdateien, die Sie in das UTF-8-Format konvertieren möchten, in einem Ordner. Schreiben Sie den Speicherort des Ordners, in dem "Ordnerpfad" steht. Schreiben Sie den Pfad wie folgt. (Ich denke, Sie müssen ein "\" für die Escape-Verarbeitung hinzufügen) Beispiel) C: \ Benutzer \ IhrName \ Desktop \ Ordner

Bei der Ausführung wird ein Ordner mit dem Namen "konvertiert" am selben Speicherort wie die Datei erstellt und die konvertierte Datei wird darin gespeichert (mit Ausnahme von Shift-JIS).

** Grund für die Herstellung ** Als ich von iPhone zu Android wechselte, hatte ich nicht die Memo-App (Textforce), die ich unter Android verwendete. Daher wechselte ich zu einer anderen Memo-App (Simplenote). Als ich die vorherigen Memos portierte, waren die auf dem PC erstellten Memos aufgrund des unterschiedlichen Zeichencodes unterschiedlich. Weil alle Charaktere verstümmelt wurden. Ich hätte das nicht selbst tun müssen, wenn ich eine Light-App gehabt hätte, die auf Android verwendet werden könnte und Text im Shift-JIS-Format lesen könnte, der einfach auf einem Computer oder Smartphone synchronisiert werden könnte ... Bitte lassen Sie mich wissen, wenn jemand empfiehlt

SJIS2UTF8.java


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;

public class SJIS2UTF {
	public static void main(String[] args) {
		SJIS2UTF stu = new SJIS2UTF();
		stu.readFolder(new File("Ordnerpfad"));
	}

	public void readFolder(File dir) {
		File[] files = dir.listFiles();
		String fileName;
		if (files == null) {
			return;
		}
		for (File file : files) {
			if (!file.exists()) {
				continue;
			} else if (file.isDirectory()) {
				readFolder(file);
			} else if (file.isFile()) {
				try {
					byte[] byteOfFile = convertFile(file);
					fileName = file.getName();

					if (isSJIS(byteOfFile)) {
						encodeStoU(file, fileName);
					} else {
						System.out.println(fileName + "Ist nicht SJIS");
					}
				} catch (IOException e) {
					System.out.println("IOException-Fehler");
				}
			}
		}
	}

	public void encodeStoU(File file, String fileName) {
		String parentPath = file.getParent();
		String sourcePath = parentPath + "\\" + fileName;
		String destFolder = parentPath + "\\converted";
		String destPath = parentPath + "\\converted\\" + fileName;

		File folder = new File(destFolder);
		if (!folder.exists()) {
			try {
				Files.createDirectory(Paths.get(destFolder));
				Files.createFile(Paths.get(destFolder, fileName));
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}

		try {
			File sourceFile = new File(sourcePath);
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(sourceFile), "Shift-JIS"));
			File destFile = new File(destPath);
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(destFile), "UTF-8"));

			String line;
			while ((line = br.readLine()) != null) {
				bw.write(line);
				bw.newLine();
			}
			br.close();
			bw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public byte[] convertFile(File file) throws IOException {
		return Files.readAllBytes(file.toPath());
	}

	public static boolean isSJIS(byte[] src) {
		try {
			byte[] tmp = new String(src, "Shift_JIS").getBytes("Shift_JIS");
			return Arrays.equals(tmp, src);
		} catch (UnsupportedEncodingException e) {
			return false;
		}
	}
}

Recommended Posts

Shift-Java-Programm, das das JIS-Format sofort im UTF-8-Format ausgibt
Java, das eine Datei im Vmg-Format im EML-Format ausgibt
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Nullsicheres Programm in Java (Eclipse)
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
Versuchen Sie es mit der JSON-Format-API in Java
Ausgabedatum in Java im erweiterten ISO 8601-Format
Programmieren Sie PDF-Kopf- und Fußzeilen in Java