2015-03-19 2 views
-1

Так что я просто застрял в программе, где мне нужно прочитать текстовый файл, используя FileInputStream и разделить этот текст на куски n-байтов. Я должен выпустить один System.out.write(); вызовите каждый кусок, поэтому мне интересно, есть ли простой способ сделать это. Благодаря!Java - Разделите текст на куски n-байтов

package test; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.util.*; 
import java.io.*; 
import java.util.Scanner; 


public class Test { 

public static void main(String[] args) { 

    int size=0; 

    FileInputStream fstream = null; 
    Scanner console = new Scanner(System.in); 
    String inputFile = console.next(); 

    System.out.println("Chunk size?"); 
    Scanner in = new Scanner(System.in); 
    size = in.nextInt(); 

    try { 
     fstream = new FileInputStream(inputFile); 

     System.out.println("Size in bytes : " 
       + fstream.available()); 

     int content; 

     while ((content = fstream.read()) != -1) { 
      //System.out.write(); for every chunk of *size* bytes 

     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      if (fstream != null) 
       fstream.close(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
} 
+0

Как раз для того, чтобы прояснить, что я имел в виду, выпуская этот вызов для записи, выписывали каждый отдельный кусок на консоль. –

+0

Не добавляйте комментарий - отредактируйте свой вопрос. – verdammelt

ответ

0
  1. использование

    байт [] байт = новый байт [размер];

    int byteCount;

    в то время как ((ByteCount = fstream.read (байт)) = -1!) ...

  2. вы можете просто создать строку таким образом:

    новый String (ByteArray,);

PS. sry для недостающего кода, не работает должным образом по какой-то причине ...

+0

Отлично, спасибо большое! :) –

Смежные вопросы