Un programme Java qui génère le format Shift-JIS par lots au format UTF-8

** Comment utiliser ** Rassemblez les fichiers texte que vous souhaitez convertir au format UTF-8 dans un dossier. Écrivez l'emplacement du dossier où il est dit "chemin du dossier". Écrivez le chemin comme suit. (Je pense que vous devez ajouter un "\" pour le traitement d'échappement) Exemple) C: \ Users \ YourName \ Desktop \ Folder

Une fois exécuté, un dossier appelé «converti» sera créé au même emplacement que le fichier, et le fichier converti y sera enregistré (sauf pour Shift-JIS).

** Raison de la fabrication ** Lorsque je suis passé de l'iPhone à Android, je n'avais pas l'application de mémo (Textforce) que j'utilisais sur Android, donc je suis passé à une autre application de mémo (Simplenote), et lorsque j'ai porté les mémos précédents, les mémos créés sur le PC étaient différents en raison de la différence de code de caractère. Parce que tous les personnages ont été déformés. Je n'aurais pas eu à le faire moi-même si j'avais une application légère qui pourrait être utilisée sur Android et lire du texte au format Shift-JIS qui pourrait être facilement synchronisé sur un ordinateur ou un smartphone ... S'il vous plaît laissez-moi savoir si quelqu'un recommande

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("Chemin du dossier"));
	}

	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 + "N'est pas SJIS");
					}
				} catch (IOException e) {
					System.out.println("Erreur IOException");
				}
			}
		}
	}

	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

Un programme Java qui génère le format Shift-JIS par lots au format UTF-8
java qui génère un fichier au format vmg au format eml
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
Programme Null-safe en Java (Eclipse)
Exemple de programme qui renvoie la valeur de hachage d'un fichier en Java
Essayez d'utiliser l'API au format JSON en Java
Date de sortie en Java au format étendu ISO 8601
Programmer les en-têtes et pieds de page PDF en Java