2013-02-11 4 views
-4
import java.io.*; 

class SplitFile  
{  
    private File fSplit; 
    private int sizeInBytes; 

    private int count; 

    public static void main(String[] args) throws IOException 
    {  
     Console con = System.console(); 

     String fileName; 

     int size = 0; 

     System.out.print("Enter the file name to split: "); 

     fileName = con.readLine(); 

     System.out.print("Enter the size of the target file: "); 

     size = Integer.parseInt(con.readLine()); 

     SplitFile sf = new SplitFile(fileName, size); 

     sf.split(); 

    } 

    public File checkFileExists(String fName)  
    {  
     File f = new File(fName); 

     if (!f.exists())  
     {  
      System.out.println("File " + fName + " does not exists"); 

      System.exit(0); 

     } 

     return f; 

    } 

    public int validateSize(int s)  
    {  
     if (fSplit.length() < s)  
     { 

      System.out.println("Invalid Size"); 

      System.exit(0); 

     } 

     return s; 

    } 

    public String createNextFileName()  
    {  
     ++count; 

     String fileName; 

     fileName = "part_" + count + "." + fSplit.getName(); 

     return fileName; 

    } 

    public SplitFile(String fName, int s)  
    { 

     fSplit = checkFileExists(fName); 

     sizeInBytes = validateSize(s); 

     count = 0; 

    } 

    public void split() throws IOException 

    { 

     FileInputStream fis = new FileInputStream(fSplit); 

     BufferedInputStream bis = new BufferedInputStream(fis); 

     File fileSegment = new File(createNextFileName()); 

     FileOutputStream fos = new FileOutputStream(fileSegment); 

     BufferedOutputStream bos = new BufferedOutputStream(fos); 

     int ch; 

     int currentByteCount = 0; 

     while ((ch = bis.read()) != -1) 

     { 

      bos.write(ch); 

      ++currentByteCount; 

      if (currentByteCount == sizeInBytes) 

      { 

       bos.close(); 

       fos.close(); 

       fileSegment = new File(createNextFileName()); 

       fos = new FileOutputStream(fileSegment); 

       bos = new BufferedOutputStream(fos); 

       currentByteCount = 0; 

      } 

     } 

     bis.close(); 

     fis.close(); 

     bos.close(); 

     fos.close(); 

    } 

} 
+0

?? – BobTheBuilder

+0

Я никогда не слышал о типе файла файла .. скажите, пожалуйста, о нем .. – joy

+0

Для чего предназначен данный код? –

ответ

1

Файл Объект, только что, объект, используемый для обработки файлов, вы можете прочитать на документации для него here.

+0

@pradeep .. если это не тип данных .. то что такое Это..?? – joy

+0

@joy класс, который может быть создан в объекте, как и большинство вещей в java (EG: класс строк) – w4etwetewtwet

+0

Это класс ... –

3

основе из документации

Абстрактное представление файлов и директорий для имен каталогов.

File является ссылочным типом. она используется для обработки файлов (например. Создание) Было бы проще для вас, чтобы понять это, глядя на эту link

UPDATE

Просто, глядя на ваши комментарии из предыдущего ответа я что вы не знаете/не знакомы с различными типами данных в java, существует два типа данных.

  1. Примитивные типы данных (CHAR, INT, булевы)
  2. Ссылка Типы/Object (User Defined классы, суперкласса Object и в вашем случае, File) знак вопроса
+0

спасибо sooo mucchh .... :) – joy

+0

Не стесняйтесь нажать галочку;) – KyelJmD