Private String fileseparator = File.separator; Distinguish between different window platform directory separators
Private String FilePath = "E:" +fileseparator+ "Code" +fileseparator+ "pdm-server-parent" +fileseparator+ "Pdm-server" + fileseparator+ "Logs";
Private final int buffer_size = 0x300000;//buffer size is 3M
Public string getlogallcontent (string filename) throws IOException {
String flagstring = "";
/*filereader reader = new FileReader (filepath+fileseparator+filename);
BufferedReader breader = new BufferedReader (reader);
while ((Breader.readline ())!=null) {
Flagstring + = Breader.readline () + "\ n";
} */
File File = new file (filepath+fileseparator+filename);
Mappedbytebuffer inputbuffer = new Randomaccessfile (file, "R")
. Getchannel (). Map (FileChannel.MapMode.READ_ Only, 0, file.length ()); Read all content
byte[] logbyte = new byte[buffer_size];//each read 3M
for (int offset = 0; offset < inputbuffer.capacity ( ); Offset + = buffer_size) {
if (inputbuffer.capacity ()-offset >= buffer_size) {
for (int i = 0; i < buffer_size; i++)
Logbyte[i] = inputbuffer.get (offset + i);
} else{
for (int i = 0; i < inputbuffer.capacity ()-offset; i++)
Logbyte[i] = inputbuffer.get (offset + i);
}
int length = (inputbuffer.capacity ()% Buffer_size = = 0)? Buffer_size
: inputbuffer.capacity ()% Buffer_size;
flagstring = new String (logbyte, 0, length);
}
return flagstring;
}
Java Quick Read Large file