java读取二进制文件数据
public static void readFileByBytes(String fileName) {
try {
FileInputStream in = new FileInputStream(fileName);
byte[] bytes = new byte[10];
int c;
while((c=in.read(bytes))!=-1){
System.out.println(Arrays.toString(bytes));
}
} catch (Exception e) {
}
}
public static void readFileByChar(String fileName) {
try {
FileInputStream in = new FileInputStream(fileName);
InputStreamReader reader = new InputStreamReader(in,"ASCII");
char[] chars = new char[10];
int c;
while((c=reader.read(chars))!=-1){
System.out.println(Arrays.toString(chars));
}
} catch (Exception e) {
}
}
public static void readFileByLine(String fileName) {
try {
FileInputStream in = new FileInputStream(fileName);
InputStreamReader reader = new InputStreamReader(in,"ASCII");
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
bufferedReader.close();
} catch (Exception e) {
}
}
public static String subStringByBytes(String str, int bytes,String charSetName) {
String subAfter = str.substring(0, bytes);
int temp = bytes;
try {
while(bytes < subAfter.getBytes(charSetName).length){
subAfter = subAfter.substring(0,--temp );
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return subAfter;
}
public class DemoApplicationTests {
public static void main(String[] args) {
String fileName = "E:\\work\\Read_AccpuntMsg.dat";
readFileByLine(fileName);
}
public static void readFileByLine(String fileName) {
try {
FileInputStream in = new FileInputStream(fileName);
InputStreamReader reader = new InputStreamReader(in,"ASCII");
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
String ascii = subStringByBytes(line, 21, "ASCII");
System.out.println("name>>>"+ascii);
String s = line.replaceFirst(ascii,"");
String ascii1 = subStringByBytes(s, 2, "ASCII");
System.out.println("sex>>>"+ascii1);
}
bufferedReader.close();
} catch (Exception e) {
}
}
}