X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FIdentifyFile.java;h=7ad8fcd6dc7833f4e696c1389c797a231defe046;hb=3d0101179759ef157b088ea135423cd909512d9f;hp=4b6f8e40a9b0da997593a5f088033967ebfaf60d;hpb=45e015aabe8f35a4a13be26e7630641ef8c94fbb;p=jalview.git diff --git a/src/jalview/io/IdentifyFile.java b/src/jalview/io/IdentifyFile.java index 4b6f8e4..7ad8fcd 100755 --- a/src/jalview/io/IdentifyFile.java +++ b/src/jalview/io/IdentifyFile.java @@ -72,10 +72,11 @@ public class IdentifyFile // preserves original behaviour prior to version 2.3 } - public FileFormatI identify(AlignmentFileReaderI file, boolean closeSource) - throws IOException + public FileFormatI identify(AlignmentFileReaderI file, + boolean closeSource) throws IOException { - FileParse fp = new FileParse(file.getInFile(), file.getDataSourceType()); + FileParse fp = new FileParse(file.getInFile(), + file.getDataSourceType()); return identify(fp, closeSource); } @@ -98,12 +99,15 @@ public class IdentifyFile boolean lineswereskipped = false; boolean isBinary = false; // true if length is non-zero and non-printable // characters are encountered + try { if (!closeSource) { source.mark(); } + boolean aaIndexHeaderRead = false; + while ((data = source.nextLine()) != null) { bytesRead += data.length(); @@ -146,6 +150,15 @@ public class IdentifyFile reply = FileFormat.ScoreMatrix; break; } + if (data.startsWith("H ") && !aaIndexHeaderRead) + { + aaIndexHeaderRead = true; + } + if (data.startsWith("D ") && aaIndexHeaderRead) + { + reply = FileFormat.ScoreMatrix; + break; + } if (data.startsWith("##GFF-VERSION")) { // GFF - possibly embedded in a Jalview features file! @@ -297,9 +310,8 @@ public class IdentifyFile break; } - if ((data.indexOf("//") == 0) - || ((data.indexOf("!!") > -1) && (data.indexOf("!!") < data - .indexOf("_MULTIPLE_ALIGNMENT ")))) + if ((data.indexOf("//") == 0) || ((data.indexOf("!!") > -1) && (data + .indexOf("!!") < data.indexOf("_MULTIPLE_ALIGNMENT ")))) { reply = FileFormat.MSF; @@ -349,8 +361,8 @@ public class IdentifyFile } if (trimmedLength == 0) { - System.err - .println("File Identification failed! - Empty file was read."); + System.err.println( + "File Identification failed! - Empty file was read."); throw new FileFormatException("EMPTY DATA FILE"); } System.out.println("File format identified as " + reply.toString()); @@ -416,9 +428,9 @@ public class IdentifyFile type = ider.identify(args[i], DataSourceType.FILE); } catch (FileFormatException e) { - System.err.println(String.format( - "Error '%s' identifying file type for %s", args[i], - e.getMessage())); + System.err.println( + String.format("Error '%s' identifying file type for %s", + args[i], e.getMessage())); } System.out.println("Type of " + args[i] + " is " + type); }