/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication5;
import java.io.*;
/**
* @author Daxo
*/
public class KopiujDane {
public void copy(File source, File output, int linesToCopy) throws IOException {
validateLineNumber(source, linesToCopy);
validateFile(source);
if (!output.exists()) {
System.out.println("Plik nie istnieje. Tworzę nowy.");
output.createNewFile();
}
//Try with resources - używając tego nie trzeba zadeklarowanych streamów zamykać czyli omijamy 'finaly'
try(BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(source)));
FileOutputStream out = new FileOutputStream(output)) {
for(int i = 0; i < linesToCopy; i++) {
out.write((in.readLine() + "\n").getBytes());
}
}
}
private void validateFile(final File source) {
if(!source.exists()) {
throw new IllegalArgumentException("Plik " + source.getAbsolutePath() + " nie istnieje.");
}
}
private void validateLineNumber(final File source, final int linesToCopy) throws IOException {
if(linesToCopy > countLinesNumber(source)) {
throw new IllegalArgumentException("Liczba linii do skopiowania jest większa niż " +
"rzeczywista liczba linii w pliku");
}
}
private int countLinesNumber(File file) throws IOException {
int lines = 0;
try(BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {
while (reader.readLine() != null) {
lines++;
}
}
return lines;
}
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}