JAVA CODE + READ FILE FROM A LAST READ BYTE POSITION OR READ ‘n’ NUMBER OF LINES FROM LAST READ BYTE

public List<Object> retriveMonitorLog(long bytesRead){
                             String logFileLocation = “D:/MyLogs.log”;
                             RandomAccessFile randomAccess = null;
                             try {
                                       File monitorLog = new File(logFileLocation);
                                       randomAccess = new RandomAccessFile( monitorLog, “r” );
                                       long fileSize=randomAccess.length();
                                       if(fileSize>bytesRead){
                                               randomAccess.seek(bytesRead);
                                      }else{
                                              return null;
                                      }
                                     long offSetBytePosition=bytesRead;
                                   if(bytesRead==0){
                                           long startPositionByte = 0L;
                                           //205685 indicates the number of bytes you want to read at the first attempt to read the file
                                            if(fileSize>(205685)){
                                                          startPositionByte = fileSize – (205685);
                                             }
                                            randomAccess.seek(startPositionByte);
                                    } else{
                                            randomAccess.seek(offSetBytePosition);
                                     }
                             StringBuilder builder = new StringBuilder();
                             String data;
                             int lineCounter=0;
                             while((data = randomAccess.readLine())!=null && lineCounter<=1000){
                                        if(data.length()>0){
                                                  lineCounter++;

                                                  builder.append(data).append(“<br>”);                                                   

                              }
                  }
                  offSetBytePosition = randomAccess.getFilePointer();

                  ArrayList<Object> logDataList = new ArrayList<Object>(3);
                  logDataList.add(builder.toString());
                  logDataList.add(offSetBytePosition);
                  return logDataList;
                  }catch(Exception e){
                                    System.out.println();
                   } finally {
                           try{
                                   randomAccess.close();
                           }catch(Exception ex){}
                  }
                  return null;
                  }
}

Advertisements

About rajkirpal

i am a software engineer. and i have decent knowledge about java technologies like ANDROID, Servlet, Jsp, Struts, Hibernet, Spring, J2ME, Java Script, Ajax, JQuery, CSS. Further i am Preparing Easy understandable materials/documents upon the same java technologies and developing project in core java , advanced java and j2me , ANDROID as per the requirements Also designing the web sites and logos Thank You.
This entry was posted in J2SE and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s