Java Code Examples for java.io.BufferedInputStream#read()

The following examples show how to use java.io.BufferedInputStream#read() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: BinaryDictionaryFileDumper.java    From Indic-Keyboard with Apache License 2.0 6 votes vote down vote up
/**
 * Copies the data in an input stream to a target file if the magic number matches.
 *
 * If the magic number does not match the expected value, this method throws an
 * IOException. Other usual conditions for IOException or FileNotFoundException
 * also apply.
 *
 * @param input the stream to be copied.
 * @param output an output stream to copy the data to.
 */
public static void checkMagicAndCopyFileTo(final BufferedInputStream input,
        final BufferedOutputStream output) throws FileNotFoundException, IOException {
    // Check the magic number
    final int length = MAGIC_NUMBER_VERSION_2.length;
    final byte[] magicNumberBuffer = new byte[length];
    final int readMagicNumberSize = input.read(magicNumberBuffer, 0, length);
    if (readMagicNumberSize < length) {
        throw new IOException("Less bytes to read than the magic number length");
    }
    if (SHOULD_VERIFY_MAGIC_NUMBER) {
        if (!Arrays.equals(MAGIC_NUMBER_VERSION_2, magicNumberBuffer)) {
            if (!Arrays.equals(MAGIC_NUMBER_VERSION_1, magicNumberBuffer)) {
                throw new IOException("Wrong magic number for downloaded file");
            }
        }
    }
    output.write(magicNumberBuffer);

    // Actually copy the file
    final byte[] buffer = new byte[FILE_READ_BUFFER_SIZE];
    for (int readBytes = input.read(buffer); readBytes >= 0; readBytes = input.read(buffer)) {
        output.write(buffer, 0, readBytes);
    }
    input.close();
}
 
Example 2
Source File: SvgLoader.java    From nebula with Eclipse Public License 2.0 6 votes vote down vote up
static SvgDocument load(InputStream in) {
	StringBuilder sb = new StringBuilder();
	BufferedInputStream bis = new BufferedInputStream(in);
	int i;
	try {
		while((i = bis.read()) != -1) {
			char c = (char) i;
			if(Character.isWhitespace(c)) { // replace all whitespace chars with a space char
				if(' ' != sb.charAt(sb.length() - 1)) { // no point in having multiple spaces
					sb.append(' ');
				}
			} else {
				sb.append(c);
			}
		}
	} catch(IOException e) {
		e.printStackTrace();
	}
	char[] ca = new char[sb.length()];
	sb.getChars(0, sb.length(), ca, 0);
	SvgDocument doc = new SvgDocument();
	parse(doc, ca, 0, ca.length - 1);
	return doc;
}
 
Example 3
Source File: UploadFileServlet.java    From UploadFile with Apache License 2.0 6 votes vote down vote up
public static void inputStream2File(InputStream is, String savePath)
		throws Exception
{
	System.out.println("�ļ�����·��Ϊ:" + savePath);
	File file = new File(savePath);
	InputStream inputSteam = is;
	BufferedInputStream fis = new BufferedInputStream(inputSteam);
	FileOutputStream fos = new FileOutputStream(file);
	int f;
	while ((f = fis.read()) != -1)
	{
		fos.write(f);
	}
	fos.flush();
	fos.close();
	fis.close();
	inputSteam.close();
	
}
 
Example 4
Source File: BinaryDictionaryFileDumper.java    From openboard with GNU General Public License v3.0 6 votes vote down vote up
/**
 * Copies the data in an input stream to a target file if the magic number matches.
 *
 * If the magic number does not match the expected value, this method throws an
 * IOException. Other usual conditions for IOException or FileNotFoundException
 * also apply.
 *
 * @param input the stream to be copied.
 * @param output an output stream to copy the data to.
 */
public static void checkMagicAndCopyFileTo(final BufferedInputStream input,
        final BufferedOutputStream output) throws IOException {
    // Check the magic number
    final int length = MAGIC_NUMBER_VERSION_2.length;
    final byte[] magicNumberBuffer = new byte[length];
    final int readMagicNumberSize = input.read(magicNumberBuffer, 0, length);
    if (readMagicNumberSize < length) {
        throw new IOException("Less bytes to read than the magic number length");
    }
    if (SHOULD_VERIFY_MAGIC_NUMBER) {
        if (!Arrays.equals(MAGIC_NUMBER_VERSION_2, magicNumberBuffer)) {
            if (!Arrays.equals(MAGIC_NUMBER_VERSION_1, magicNumberBuffer)) {
                throw new IOException("Wrong magic number for downloaded file");
            }
        }
    }
    output.write(magicNumberBuffer);

    // Actually copy the file
    final byte[] buffer = new byte[FILE_READ_BUFFER_SIZE];
    for (int readBytes = input.read(buffer); readBytes >= 0; readBytes = input.read(buffer)) {
        output.write(buffer, 0, readBytes);
    }
    input.close();
}
 
Example 5
Source File: MailSenderUtil.java    From kardio with Apache License 2.0 6 votes vote down vote up
/**
 * Send message to Webhook URL
 * 
 * @param subscription
 * @throws IOException
 */
public void sentMessageToWebhook(String webhookUrl, String message) throws IOException {
    
    Log.debug("Webhook Message : " + message);
    URL myurl = new URL(webhookUrl);
    HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
    con.setRequestMethod("POST");

    con.setRequestProperty("Content-length", String.valueOf(message.length()));
    con.setRequestProperty("Content-Type", "application/json");
    con.setDoOutput(true);
    con.setDoInput(true);

    DataOutputStream output = new DataOutputStream(con.getOutputStream());
    output.writeBytes(message);
    output.flush();
    output.close();

    BufferedInputStream inStream = new BufferedInputStream(con.getInputStream());
    byte[] b = new byte[256];
    inStream.read(b);
    Log.debug("Response : " + new String(b));
}
 
Example 6
Source File: TestPPTX2PNG.java    From birt with Eclipse Public License 1.0 5 votes vote down vote up
private void copyResource( String resource, String fileName )
		throws IOException
{
	InputStream in = DesignToPNG.class.getClassLoader( )
			.getResourceAsStream( resource );
	if ( in == null )
	{
		throw new IOException( );
	}
	new File( fileName ).getParentFile( ).mkdirs( );
	BufferedInputStream bi = new BufferedInputStream( in );
	FileOutputStream fi = new FileOutputStream( fileName );
	try
	{
		byte[] buffer = new byte[4096];
		int size = bi.read( buffer );
		while ( size > 0 )
		{
			fi.write( buffer, 0, size );
			size = bi.read( buffer );
		}
	}
	finally
	{
		fi.close( );
		bi.close( );
		in.close( );
	}

}
 
Example 7
Source File: SimpleDiff.java    From gemfirexd-oss with Apache License 2.0 5 votes vote down vote up
public void pause()
{
    BufferedInputStream bis = new BufferedInputStream(System.in);
    try
    {
        bis.read();
    }
    catch (IOException ioe)
    {
        pw.println("Error trying to pause...");
        System.out.println("Error trying to pause...");
    }
}
 
Example 8
Source File: SimAtom.java    From org.alloytools.alloy with Apache License 2.0 5 votes vote down vote up
/**
 * Read a "..." atom assuming the leading " has already been consumed.
 */
static SimAtom read(BufferedInputStream in) throws IOException {
    byte temp[] = new byte[64]; // to ensure proper detection of
                               // out-of-memory error, this number must be
                               // 2^n for some n>=0
    int n = 0;
    while (true) {
        int c = in.read();
        if (c < 0)
            throw new IOException("Unexpected EOF");
        if (c == '\"')
            break;
        if (c == '\\') {
            c = in.read();
            if (c < 0)
                throw new IOException("Unexpected EOF");
            if (c == 'n')
                c = '\n';
        }
        while (n >= temp.length) {
            byte temp2[] = new byte[temp.length * 2];
            System.arraycopy(temp, 0, temp2, 0, temp.length);
            temp = temp2;
        }
        temp[n] = (byte) c;
        n++;
    }
    return make(new String(temp, 0, n, "UTF-8"));
}
 
Example 9
Source File: Utils.java    From Evolve with GNU Affero General Public License v3.0 5 votes vote down vote up
@Override
protected Boolean doInBackground(String... vals) {
    try{
        URL updateURL = new URL(vals[0]);
        URLConnection conn = updateURL.openConnection();
        InputStream is = conn.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);
        ByteArrayBuffer baf = new ByteArrayBuffer(50);

        int current = 0;
        while((current = bis.read()) != -1){
            baf.append((byte)current);
        }

     /* Convert the Bytes read to a String. */
        final String s = new String(baf.toByteArray());

     /* Get current Version Number */
        int curVersion = Integer.valueOf(vals[1]);
        int newVersion = Integer.valueOf(s);

     /* Is a higher version than the current already out? */
        if (newVersion > curVersion) {
            return true;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}
 
Example 10
Source File: FileUtils.java    From dawnsci with Eclipse Public License 1.0 5 votes vote down vote up
/**
 * @param source
 * @param destination_file
 * @throws IOException
 */
public final static void write(final BufferedInputStream source, final File destination_file) throws IOException {

	final File parTo = destination_file.getParentFile();
	if (!parTo.exists()) {
		parTo.mkdirs();
	}
	if (!destination_file.exists()) {
		destination_file.createNewFile();
	}

	OutputStream destination = null;
	try {

		destination = new BufferedOutputStream(new FileOutputStream(destination_file));
		byte[] buffer = new byte[FileUtils.getBufferSize()];
		int bytes_read;

		while (true) {
			bytes_read = source.read(buffer);
			if (bytes_read == -1) {
				break;
			}
			destination.write(buffer, 0, bytes_read);
		}

	} finally {
		source.close();
		if (destination != null) {
			destination.close();
		}
	}
}
 
Example 11
Source File: OctaneTest.java    From openjdk-jdk8u with GNU General Public License v2.0 5 votes vote down vote up
public Double genericV8Test(final String benchmark, final String testPath) throws Throwable {

        System.out.println("genericV8Test");
        if (!checkV8Presence()) {
            return null;
        }
        final String v8shell = System.getProperty("v8.shell.full.path");
        final PrintStream systemOut = System.out;

        try {

            final Process process = Runtime.getRuntime().exec(v8shell + " " + testPath);
            process.waitFor();
            final InputStream processOut = process.getInputStream();
            final BufferedInputStream bis = new BufferedInputStream(processOut);

            final byte[] output = new byte[bis.available()];
            bis.read(output, 0, bis.available());
            final List<String> result = outputToStrings(output);
            return filterBenchmark(result, benchmark);

        } catch (final Throwable e) {
            System.setOut(systemOut);
            e.printStackTrace();
            throw e;
        }
    }
 
Example 12
Source File: ImagePresenter.java    From Ency with Apache License 2.0 5 votes vote down vote up
private void saveToDisk(File imageFile, ResponseBody body) throws IOException {
    InputStream is = body.byteStream();
    FileOutputStream fos = new FileOutputStream(imageFile);
    BufferedInputStream bis = new BufferedInputStream(is);
    byte[] buffer = new byte[1024];
    int len;
    while ((len = bis.read(buffer)) != -1) {
        fos.write(buffer, 0, len);
    }
    fos.flush();
    fos.close();
    bis.close();
    is.close();
}
 
Example 13
Source File: DataAct.java    From Lottery with GNU General Public License v2.0 5 votes vote down vote up
private  String readFile(String filename) throws IOException {
    File file =new File(filename);
    if(filename==null || filename.equals(""))
    {
      throw new NullPointerException("<@s.m 'db.fileerror'/>");
    }
    long len = file.length();
    byte[] bytes = new byte[(int)len];
    BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream(file));
    int r = bufferedInputStream.read( bytes );
    if (r != len)
      throw new IOException("<@s.m 'db.filereaderror'/>");
    bufferedInputStream.close();
    return new String(bytes,"utf-8");
}
 
Example 14
Source File: TailFileMulti.java    From BigDataScript with Apache License 2.0 4 votes vote down vote up
/**
 * Check if there is output available on any file
 * @returns Number of bytes read. Negative number of there were problems
 */
@Override
protected int tail() {
	if (!exists) {
		exists = inputFile.exists();
		if (!exists) return 0;
	}

	// File size
	long size = inputFile.length();
	if (size <= inputPos) return 0;

	int avail = (int) (size - inputPos);
	int count = 0;
	try {
		// Open input
		FileInputStream fis = new FileInputStream(inputFileName);
		fis.skip(inputPos);
		BufferedInputStream input = new BufferedInputStream(fis);

		BufferedOutputStream output = null;
		avail = input.available();

		while (avail > 0) {
			// Read all available bytes
			avail = Math.min(avail, MAX_BUFFER_SIZE); // Limit buffer size (some systems return MAX_INT when the file is growing)
			byte[] bytes = new byte[avail];
			count = input.read(bytes);
			inputPos += count;

			// Show bytes
			if (showStderr) System.err.write(bytes, 0, count);
			else System.out.write(bytes, 0, count);

			// Write to output
			if (output != null) output.write(bytes, 0, count);

			avail = input.available(); // Something more to read?
		}

		// Close input and output
		input.close();
	} catch (Exception e) {
		throw new RuntimeException(e);
	}
	return count;
}
 
Example 15
Source File: JschServiceImpl.java    From jwala with Apache License 2.0 4 votes vote down vote up
/**
 * Reads data streamed from a remote connection
 *
 * @param remoteOutput  the inputstream where the remote connection will stream data to
 * @param dataEndMarker a marker which tells the method to stop reading from the inputstream. If this is null
 *                      then the method will try to read data from the input stream until read timeout is reached.
 * @param timeout       the length of time in which to wait for incoming data from the stream
 * @return the data streamed from the remote connection
 * @throws IOException thrown when reading bytes from input stream
 */
private String readRemoteOutput(final InputStream remoteOutput, final Character dataEndMarker, final long timeout)
        throws IOException {

    if (null == dataEndMarker) {
        throw new JschServiceException("Expecting non-null end marker when reading remote output");
    }

    final int readInputSleepDuration = Integer.parseInt(ApplicationProperties.get(
            JSCH_CHANNEL_SHELL_READ_INPUT_SLEEP_DURATION.getPropertyName(), SHELL_READ_SLEEP_DEFAULT_VALUE));
    final BufferedInputStream buffIn = new BufferedInputStream(remoteOutput);
    final byte[] bytes = new byte[BYTE_CHUNK_SIZE];
    final ByteArrayOutputStream out = new ByteArrayOutputStream();
    String result;
    LOGGER.debug("Default char encoding:" + Charset.defaultCharset());
    long startTime = System.currentTimeMillis();
    try {
        while (true) {
            if (buffIn.available() != 0) {
                final int size = buffIn.read(bytes);

                if (size > 0) {
                    LOGGER.debug("Read:" + size + " bytes");
                    out.write(bytes, 0, size);
                    LOGGER.debug("Bytes read as String: " + new String(bytes));
                }

                startTime = System.currentTimeMillis();

                // Alternative method of checking if we got our 'EOF' character.
                boolean stopReading = false;
                for(int b=0;b<size;b++) {
                    if (bytes[b]==-1) {
                        LOGGER.debug("Read EOF byte '{}', stopping remote output reading...", bytes[size - 1]);
                        stopReading=true;
                    }
                }

                if (stopReading) {
                    break;
                }

                // need to verify this works on non-windows systems
                // currently setting the encoding to UTF8, UTF16, ASCII, or ISO all fail this conditional
                // e.g. new String(bytes, StandardCharsets.UTF-8)
                // printing out Charset.defaultCharset() shows it's using windows-1252 on a Windows JVM
                if (new String(bytes).indexOf(dataEndMarker) > -1) {
                    LOGGER.debug("Read EOF character '{}', stopping remote output reading...", bytes[size - 1]);
                    break;
                }
            }

            if ((System.currentTimeMillis() - startTime) > timeout) {
                LOGGER.warn("Remote output reading timeout!");
                break;
            }

            try {
                Thread.sleep(readInputSleepDuration);
            } catch (final InterruptedException e) {
                final String errMsg =  "readRemoteOutput was interrupted while waiting for input from JSch channel!";
                LOGGER.error(errMsg, e);
                throw new JschServiceException(errMsg, e);
            }
        }
    } finally {
        result = out.toString(StandardCharsets.UTF_8.name());
        out.close();
    }

    return result;
}
 
Example 16
Source File: FileUtility.java    From seleniumtestsframework with Apache License 2.0 4 votes vote down vote up
public static void extractJar(final String storeLocation, final Class<?> clz) throws IOException {
    File firefoxProfile = new File(storeLocation);
    String location = clz.getProtectionDomain().getCodeSource().getLocation().getFile();

    JarFile jar = new JarFile(location);
    System.out.println("Extracting jar file::: " + location);
    firefoxProfile.mkdir();

    Enumeration<?> jarFiles = jar.entries();
    while (jarFiles.hasMoreElements()) {
        ZipEntry entry = (ZipEntry) jarFiles.nextElement();
        String currentEntry = entry.getName();
        File destinationFile = new File(storeLocation, currentEntry);
        File destinationParent = destinationFile.getParentFile();

        // create the parent directory structure if required
        destinationParent.mkdirs();
        if (!entry.isDirectory()) {
            BufferedInputStream is = new BufferedInputStream(jar.getInputStream(entry));
            int currentByte;

            // buffer for writing file
            byte[] data = new byte[BUFFER];

            // write the current file to disk
            FileOutputStream fos = new FileOutputStream(destinationFile);
            BufferedOutputStream destination = new BufferedOutputStream(fos, BUFFER);

            // read and write till last byte
            while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
                destination.write(data, 0, currentByte);
            }

            destination.flush();
            destination.close();
            is.close();
        }
    }

    FileUtils.deleteDirectory(new File(storeLocation + "\\META-INF"));
    if (OSUtility.isWindows()) {
        new File(storeLocation + "\\" + clz.getCanonicalName().replaceAll("\\.", "\\\\") + ".class").delete();
    } else {
        new File(storeLocation + "/" + clz.getCanonicalName().replaceAll("\\.", "/") + ".class").delete();
    }
}
 
Example 17
Source File: BaseTestCase.java    From birt with Eclipse Public License 1.0 4 votes vote down vote up
/**
 * Parses an input file as the design values instance.
 * 
 * @param fileName
 * @return
 * @throws IOException
 * 
 * 
 */

protected DesignValues readDesignValuesFromFile( String fileName )
		throws IOException
{
	fileName = INPUT_FOLDER + fileName;

	InputStream is = getResource( fileName ).openStream( );

	BufferedInputStream baIs = new BufferedInputStream( is );

	byte[] b = new byte[8192];
	baIs.read( b );

	String strDesignValues = new String( b, "utf-8" );

	DesignValues tmpValues = SerializerImpl.instance( ).read( strDesignValues );

	baIs.close( );
	is.close( );

	return tmpValues;
}
 
Example 18
Source File: FileManager.java    From android-advanced-decode with MIT License 4 votes vote down vote up
public static byte[] readRawBytes(File source) {
	try {
		if (Log.isLoggable("InstantRun", 2)) {
			Log.v("InstantRun", "Reading the bytes for file " + source);
		}
		long length = source.length();
		if (length > 2147483647L) {
			if (Log.isLoggable("InstantRun", 2)) {
				Log.v("InstantRun", "File too large (" + length + ")");
			}
			return null;
		}
		byte[] result = new byte[(int) length];

		BufferedInputStream input = new BufferedInputStream(
				new FileInputStream(source));
		try {
			int index = 0;
			int remaining = result.length - index;
			int numRead;
			while (remaining > 0) {
				numRead = input.read(result, index, remaining);
				if (numRead == -1) {
					break;
				}
				index += numRead;
				remaining -= numRead;
			}
			if (Log.isLoggable("InstantRun", 2)) {
				Log.v("InstantRun", "Returning length " + result.length
						+ " for file " + source);
			}
			return result;
		} finally {
			input.close();
		}
	} catch (IOException ioe) {
		if (Log.isLoggable("InstantRun", 6)) {
			Log.e("InstantRun", "Failed to read file " + source, ioe);
		}
		if (Log.isLoggable("InstantRun", 2)) {
			Log.v("InstantRun", "I/O error, no bytes returned for "
					+ source);
		}
	}
	return null;
}
 
Example 19
Source File: URLDownloader.java    From Flashtool with GNU General Public License v3.0 4 votes vote down vote up
public long Download(String strurl, String filedest, long seek) throws IOException {
	try {
		// Setup connection.
        URL url = new URL(strurl);
        URLConnection connection = url.openConnection();
        
        File fdest = new File(filedest);
        connection.connect();
        mDownloaded = 0;
        mFileLength = connection.getContentLength();
        strLastModified = connection.getHeaderField("Last-Modified");
        Map<String, List<String>> map = connection.getHeaderFields();

        // Setup streams and buffers.
        int chunk = 131072;
        input = new BufferedInputStream(connection.getInputStream(), chunk);
        outFile = new RandomAccessFile(fdest, "rw");
        outFile.seek(seek);
        
        byte data[] = new byte[chunk];
        LogProgress.initProgress(100);
        long i=0;
        // Download file.
        for (int count=0; (count=input.read(data, 0, chunk)) != -1; i++) { 
            outFile.write(data, 0, count);
            mDownloaded += count;
            
            LogProgress.updateProgressValue((int) (mDownloaded * 100 / mFileLength));
            if (mDownloaded >= mFileLength)
                break;
            if (canceled) break;
        }
        // Close streams.
        outFile.close();
        input.close();
        return mDownloaded;
	}
	catch (IOException ioe) {
		try {
			outFile.close();
		} catch (Exception ex1) {}
		try {
			input.close();
		} catch (Exception ex2) {}
		if (canceled) throw new IOException("Job canceled");
		throw ioe;
	}
}
 
Example 20
Source File: MathMachineII.java    From ET_Redux with Apache License 2.0 4 votes vote down vote up
/**
 *
 * @param variables
 * @param rootDirectoryName
 * @param createNewExpressionFilesXML
 * @throws IOException
 */
public static void outputExpressionFilesXML(//
        ValueModel[][] variables,
        String rootDirectoryName,
        boolean createNewExpressionFilesXML) throws IOException {

    // drive ExpTreeII output from here

    if (createNewExpressionFilesXML) {
        MathMachineII.expFiles = new HashMap<>();
        MathMachineII.rootDirectoryName = rootDirectoryName;
    }

    File rootDirectory = new File("." + File.separator + rootDirectoryName+File.separator);


    if (rootDirectory.exists()) {
        if (createNewExpressionFilesXML) {
            // find and delete all .xml files
            File[] expressionFilesXML = rootDirectory.listFiles(new FractionXMLFileFilter());
            for (File f : expressionFilesXML) {
                f.delete();
            }
        }
    } else {
        rootDirectory.mkdir();
    }

    FileOutputStream outputDirectoryDest = new FileOutputStream(rootDirectory+".zip");
    ZipOutputStream output = new ZipOutputStream(outputDirectoryDest);
    int BUFFER = 2048;
    byte[] data = new byte[BUFFER];
    

    for (ValueModel[] vms : variables) {
        for (ValueModel valueModel : vms) {
            FileInputStream input = new FileInputStream("."
                    + File.separator
                    + rootDirectoryName
                    + File.separator
                    + createPresentationFileVMs(valueModel.getValueTree(), valueModel.differenceValueCalcs()));
            ZipEntry entry = new ZipEntry(valueModel.getName());
            output.putNextEntry(entry);
            BufferedInputStream in = new BufferedInputStream(input, BUFFER);
            int count;
            while ((count = in.read(data, 0, BUFFER)) != -1) {
                output.write(data, 0, count);
            }
            output.closeEntry();
            in.close();
        }
    }
    output.close();
}