关键是fis.read(b,0,b.length)这句,如果你的总体的内容长度不能整除b.length那么它会把一些空字符串塞满这次b。导致b读取的内容就不对了。 因为FileInputStream这个类的read方法返回的是一个整型值。不好操作 建议你这么写: BufferedReader br = new BufferedReader(new FileReader("test.txt")); String xml = ""; StringBuilder total = new StringBuilder(""); byte[] b = new byte[1024];