Java FileInputStream Read readFileEndAsString(File file, int size_limit)

Here you can find the source of readFileEndAsString(File file, int size_limit)

Description

read File End As String

License

Open Source License

Declaration

public static String readFileEndAsString(File file, int size_limit)

            throws IOException 

Method Source Code


//package com.java2s;
/*/*from ww  w. j av  a2  s  .co m*/
* Created on Oct 10, 2003
* Modified Apr 14, 2004 by Alon Rohter
* Copyright (C) Azureus Software, Inc, All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
* 
*/

import java.io.*;

public class Main {
    public static String readFileEndAsString(File file, int size_limit)

            throws IOException {
        return (readFileEndAsString(file, size_limit, "ISO-8859-1"));
    }

    public static String readFileEndAsString(File file, int size_limit, String charset)

            throws IOException {
        FileInputStream fis = new FileInputStream(file);

        try {
            if (file.length() > size_limit) {

                // doesn't really work with multi-byte chars but woreva

                fis.skip(file.length() - size_limit);
            }

            StringBuffer result = new StringBuffer(1024);

            byte[] buffer = new byte[64 * 1024];

            while (true) {

                int len = fis.read(buffer);

                if (len <= 0) {

                    break;
                }

                // doesn't really work with multi-byte chars but woreva

                result.append(new String(buffer, 0, len, charset));

                if (result.length() > size_limit) {

                    result.setLength(size_limit);

                    break;
                }
            }

            return (result.toString());

        } finally {

            fis.close();
        }
    }
}

Related

  1. readFileBytes(File file)
  2. readFileBytes(String file)
  3. readFileBytes(String filename)
  4. readFileBytes(String fileName)
  5. readFileBytes(String filePath)
  6. readFileEx(String... file)
  7. readFileFully(File file)
  8. readFileInByteArray(String aFileName)
  9. readFileRaw(File file)