看代码就知道什么情况了
public class Ch1 {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("D:\\IdeaProjects\\webkaola\\alter.sql");
BufferedInputStream bis = new BufferedInputStream(fis);
// BufferedReader br = getBufferedReader(bis);
// getBuffer(bis);
// br.close();
// getRead1(bis);
// getRead(bis);
bis.close();
fis.close();
}
/**
* read(byte[]) 演示 编码设置问题
*
* @param bis
* @throws IOException
*/
private static void getRead1(BufferedInputStream bis) throws IOException {
byte[] buffer = new byte[1024];
int read = bis.read(buffer);
StringBuilder sb = new StringBuilder();
while (read != -1) {
sb.append(new String(buffer, "iso-8859-1"));
read = bis.read(buffer);
}
System.out.println(new String(sb.toString().getBytes("iso-8859-1"), "GBK"));
}
/**
* read(byte[],off,len) 演示 编码设置问题
*
* @param bis
* @throws IOException
*/
private static void getRead(BufferedInputStream bis) throws IOException {
byte[] buffer = new byte[1024];
StringBuilder stringBuilder = new StringBuilder();
while (bis.read(buffer, 0, buffer.length) != -1) {
stringBuilder.append(new String(buffer, "iso-8859-1"));
}
System.out.println(new String(stringBuilder.toString().getBytes("iso-8859-1"), "GBK"));
}
/**
* 演示一次性读取完 read(byte[bis.available()]) 编码设置问题
*
* @param bis
* @throws IOException
*/
private static void getBuffer(BufferedInputStream bis) throws IOException {
byte[] byteChar = new byte[bis.available()];
bis.read(byteChar);
System.out.println(new String(new String(byteChar, "iso-8859-1").getBytes("iso-8859-1"), "GBK"));
}
/**
* 演示通过BufferedReader一行一行的读取 编码设置问题
*
* @param bis
* @return
* @throws IOException
*/
private static BufferedReader getBufferedReader(BufferedInputStream bis) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(bis, "iso-8859-1"));
String s;
StringBuilder sb = new StringBuilder();
while ((s = br.readLine()) != null) {
sb.append(s).append("\n");
}
System.out.println(new String(sb.toString().getBytes("iso-8859-1"), "GBK"));
return br;
}
}