package converter;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;public class HexToDec{ public static void main (String[]args) { HexToDec h = new HexToDec(); ArrayList<Integer> integerList = h.decimalList("/Users/olemagro/Desktop/SinusHEX.txt"); integerArrayListToFile(integerList); } /** * Enkel metode som omgjør et heksadesimaltall representert som en String om til et Integer. * * @param hex Det heksadesimale tallet du vil konvertere * @return Det omgjorte heksadesimale tallet i titallssystemet. */ public int hexToDec(String hex) { int dec = Integer.parseInt(hex, 16); return dec; } /** * Metode som omgjør alle hex-tall til dec og legger dem inn i en ArrayList. * * @param filePath path til der tekstfilen med heksadesimaltall ligger. * @return Returnerer en liste med tall som er konvertert fra heksadesimal-desimal */ public ArrayList<Integer> decimalList(String filePath) { ArrayList<Integer> decimalArray = new ArrayList<Integer>(); String hex = ""; try { hex = readFileAsString(filePath); } catch (IOException e) { e.printStackTrace(); } hex.trim(); for(int i = 0, n = 2668; i<n; i++) { char c1 = hex.charAt(2*i); char c2 = hex.charAt((2*i)+1); String s = Character.toString(c1) + Character.toString(c2); int des = hexToDec(s); decimalArray.add(des); } return decimalArray; } /** * Metode som henter inn data fra et tekstdokument og omgjør det til en tekststreng av typen String i java. * Kilde: http://snippets.dzone.com/posts/show/1335 * * @param filePath Path til tekstfilen. * @return Returnerer en tekststreng med all data fra .txt-dokumentet. * @throws java.io.IOException */ private static String readFileAsString(String filePath) throws java.io.IOException { StringBuffer fileData = new StringBuffer(3000); BufferedReader reader = new BufferedReader(new FileReader(filePath)); char[] buf = new char[1024]; int numRead=0; while((numRead=reader.read(buf)) != -1){ String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); buf = new char[1024]; } reader.close(); return fileData.toString(); } /** * Metode som lagrer en tekstfil med utregnede hex-dec-verdier. * * @param input Listen som inneholder de konverterte tallene. */ private static void integerArrayListToFile(ArrayList<Integer> input) { try{ BufferedWriter out = new BufferedWriter(new FileWriter("SinusDEC.txt")); for (int i = 0; i < input.size(); i++) { out.write(input.get(i).toString() + " "); } out.close(); } catch (IOException e){ System.out.println(e); } }}