Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Java I/O (јунска сесија) Problem 3 (0 / 0)
- Потребно е да ја имплементирате функцијата manage(String in, String out) која врши организација на текстуалните датотеки (*.dat) од именикот in според нивните привилегии на следниот начин:
- доколку датотеката има привилегии за запишување тогаш таа треба да се премести во out именикот. При преместувањето, во конзола испечатете pomestuvam и апсолутното име на датотеката која се копира.
- доколку датотеката нема привилегии за запишување тогаш нејзината содржина додадете ја на крај од датотеката writable-content.txt во resources именикот. При додавањето, во конзола испечатете dopisuvam и апсолутното име на датотеката. Сметајте дека овие датотеки може да бидат многу поголеми од физичката меморија на компјутерот.
- доколку датотеката е скриена (hidden), тогаш избришете ја од in именикот, и во конзола испечатете zbunet sum и апсолутното име на датотеката.
- Доколку in именикот не постои, испечатете на екран ne postoi.
- Доколку out именикот веќе постои, избришете ја неговата содржина. Претпоставете дека во out именикот има само датотеки.
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.FilenameFilter;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- public class JunskaIO {
- public static final String APPEND_FILE = "./resources/writable-content.txt";
- public void manage(String in, String out) throws IOException {
- File inFile = new File(in);
- File outFile = new File(out);
- DatFilter filter = new DatFilter();
- if (!inFile.exists()) {
- System.out.println("Ne postoi!");
- return;
- }
- if (outFile.exists()) {
- deleteContent(out);
- }
- File [] files = inFile.listFiles(filter);
- for (File contentFile : files) {
- if (contentFile.canWrite()) {
- moveIt(contentFile,outFile);
- }
- else if (!contentFile.canWrite()) {
- System.out.println("dopisuvam " + contentFile.getAbsolutePath());
- append(contentFile);
- }
- else if (contentFile.isHidden()) {
- System.out.println("zbunet sum " + contentFile.getAbsolutePath());
- contentFile.delete();
- }
- }
- }
- public void append(File file) throws IOException {
- try (InputStream in = new FileInputStream(file);
- OutputStream out = new FileOutputStream(APPEND_FILE,true)) {
- int c;
- while ((c = in.read()) != -1)
- out.write(c);
- }
- }
- public void moveIt(File file, File parent) {
- File newFile = new File(parent,file.getName());
- System.out.println("pomestuvam" + file.getAbsolutePath());
- file.renameTo(newFile);
- }
- private void deleteContent(String file) {
- File f = new File(file);
- File [] files = f.listFiles();
- for (File contentFile : files)
- contentFile.delete();
- }
- }
- class DatFilter implements FilenameFilter {
- @Override
- public boolean accept(File dir, String name) {
- File file = new File(dir,name);
- return file.isFile() && name.endsWith(".dat");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement