after testing, found that these changes cause encoding problems on some setups when the JSON files are read; tried for a bit to find a solution, but gave up since I was having to test on my live server (test VM server was working fine)
so, reverting for now
This commit is contained in:
		@@ -3,59 +3,31 @@ package org.mcteam.factions.util;
 | 
				
			|||||||
import java.io.*;
 | 
					import java.io.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Hard disk related methods such as read and write.
 | 
					 * Harddisc related methods such as read and write.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class DiscUtil {
 | 
					public class DiscUtil {
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Convenience function for writing a string to a file.
 | 
						 * Convenience function for writing a string to a file.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public static void write(File file, String content) throws IOException {
 | 
						public static void write(File file, String content) throws IOException {
 | 
				
			||||||
		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false), "UTF-8"));
 | 
							BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false), "UTF8"));
 | 
				
			||||||
		out.write(content);
 | 
							out.write(content);
 | 
				
			||||||
		out.close();
 | 
							out.close();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Convenience function for reading a file as a string.
 | 
						 * Convenience function for reading a file as a string.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public static String read(File file) throws IOException {
 | 
						public static String read(File file) throws IOException {
 | 
				
			||||||
//		BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
 | 
							BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
 | 
				
			||||||
		InputStream inStream = new FileInputStream(file);
 | 
							String ret = new String(new byte[0], "UTF-8");
 | 
				
			||||||
		BufferedReader in = new BufferedReader(inputStreamToReader(inStream));
 | 
							 
 | 
				
			||||||
		StringBuilder ret = new StringBuilder();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		String line;
 | 
							String line;
 | 
				
			||||||
		while ((line = in.readLine()) != null) {
 | 
							while ((line = in.readLine()) != null) {
 | 
				
			||||||
			ret.append(line);
 | 
								ret += line;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		in.close();
 | 
							in.close();
 | 
				
			||||||
 | 
							return ret;
 | 
				
			||||||
		return ret.toString();
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/**
 | 
					 | 
				
			||||||
	 * Helper method for determining and using correct encoding when reading data,
 | 
					 | 
				
			||||||
	 * since so many people/text editors seem to mess up the encoding; hopefully this will help
 | 
					 | 
				
			||||||
	 * Adapted from: http://blog.publicobject.com/2010/08/handling-byte-order-mark-in-java.html
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	public static Reader inputStreamToReader(InputStream in) throws IOException {
 | 
					 | 
				
			||||||
		if (in.available() < 3)
 | 
					 | 
				
			||||||
			return new InputStreamReader(in);
 | 
					 | 
				
			||||||
		int byte1 = in.read();
 | 
					 | 
				
			||||||
		int byte2 = in.read();
 | 
					 | 
				
			||||||
		if (byte1 == 0xFF && byte2 == 0xFE) {
 | 
					 | 
				
			||||||
			return new InputStreamReader(in, "UTF-16LE");
 | 
					 | 
				
			||||||
		} else if (byte1 == 0xFF && byte2 == 0xFF) {
 | 
					 | 
				
			||||||
			return new InputStreamReader(in, "UTF-16BE");
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			int byte3 = in.read();
 | 
					 | 
				
			||||||
			if (byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF) {
 | 
					 | 
				
			||||||
				return new InputStreamReader(in, "UTF-8");
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				byte[] first3 = {(byte)byte1, (byte)byte2, (byte)byte3};
 | 
					 | 
				
			||||||
				InputStream firstChars = new ByteArrayInputStream(first3);
 | 
					 | 
				
			||||||
				return new InputStreamReader(new SequenceInputStream(firstChars, in));
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user