JavaRush /جاوا بلاگ /Random-SD /ليول 31. ليول جي موضوع تي انٽرويو سوالن جا جواب
DefNeo
سطح

ليول 31. ليول جي موضوع تي انٽرويو سوالن جا جواب

گروپ ۾ شايع ٿيل
ليول 31. ليول جي موضوع تي انٽرويو سوالن جا جواب - 1
  1. ڇا ھڪڙو اعتراض Fileھڪڙي فائل سان ملائي سگھي ٿو جيڪو اڃا تائين موجود نه آھي؟

    ها، جيڪڏهن توهان ڊاريڪٽري جي قيمت کي تعمير ڪندڙ ڏانهن منتقل ڪيو.

    String dirPath = "/";
    File f = new File(dirPath);
    File[] files = f.listFiles();

    اهو ڪيو ويو آهي، مثال طور، فائلن جي هڪ صف حاصل ڪرڻ لاء.

    public class MyClass {
        public static void main(String[] args) {
            boolean isObject = false;
    
    
            File file = new File("/");
            if (file instanceof Object){
                isObject = true;
            }
            boolean isFile = file.isFile(); // Tests whether the file denoted by this abstract pathname is a normal file.
    Это из documentации
            System.out.println(isObject + " "+ isFile);
    
        }
    }

    ٻاھر نڪتو:

    سچو ڪوڙو

    Fileمان ورثي ۾ ملي ٿو object. جواب: ها! مان توهان جي تبصرن جو انتظار ڪري رهيو آهيان.

  2. Fileڪنهن شئي کي ٽائپ ۾ ڪيئن بدلجي Path؟

    طريقوtoPath();

    toPath(); //Returns a java.nio.file.Path object constructed from the this abstract path.
  3. ڇو فائلون ڪلاس جي ضرورت آهي؟

    اسان ڪلاس کي بنياد طور ورتو File، ان ۾ ٿوري نئين شيءِ شامل ڪئي، طريقن جو نالو مٽايو، ۽ آخر ۾ ان کي ٻن حصن ۾ ورهايو. تنهنڪري هاڻي ٻه نوان طبقا آهن - Path۽ Files.

    Path- هي، حقيقت ۾، ڪلاس جو هڪ نئون اينالاگ آهي File، ۽ - هي هڪ يوٽيلٽي ڪلاس آهي ( ۽ ڪلاسز Filesسان قياس ڪندي )، ڪلاس جا سڀئي جامد طريقا ان ڏانهن منتقل ڪيا ويا آهن . اھو آھي ”وڌيڪ صحيح“ OOP.M جي نقطي نظر کانArraysCollectionsFile

    ڪجھ دستاويزن مان:

    public final class Files
    extends Object

    هي طبقو خاص طور تي جامد طريقن تي مشتمل آهي جيڪي فائلن، ڊائريڪٽرن، يا فائلن جي ٻين قسمن تي هلن ٿا.
    اڪثر ڪيسن ۾، هتي بيان ڪيل طريقن سان لاڳاپيل فائل سسٽم فراهم ڪندڙ کي فائل جي عملن کي انجام ڏيڻ لاء نمائندو ڪيو ويندو.

  4. توهان ڪهڙي آرڪائيو ڪلاس کي ڄاڻو ٿا؟

    هن موضوع تي هڪ سٺو مضمون ۽ ان مان هڪ اقتباس: جاوا ۾ آرڪائيو

    آرڪائيوز سان ڪم ڪرڻ لاءِ جاوا جي وضاحت ۾ ٻه پيڪيجز آهن - java.util.zip۽ java.util.jarترتيب سان زپ ۽ جار آرڪائيوز لاءِ. جار ۽ زپ فارميٽ جي وچ ۾ فرق صرف زپ آرڪائيو جي واڌ ۾ آهي. ھڪڙو پيڪيج java.util.jarھڪڙي پيڪيج سان ملندڙ جلندڙ آھي ، سواءِ ٺاھيندڙن ۽ ھڪڙي طبقي جي طريقي java.util.zipجي عمل جي . صرف پيڪيج هيٺ بحث ڪيو ويندو . زپ آرڪائيو استعمال ڪرڻ لاء سڀني مثالن کي تبديل ڪرڻ لاء، صرف ڪوڊ ۾ هر جاء تي زپ سان جار کي تبديل ڪريو.voidputNextEntry(ZipEntry e)JarOutputStreamjava.util.jar

  5. آرڪائيو ۾ ڊاريڪٽري ڪيئن شامل ڪجي؟

    پنهنجي لاءِ، مون هن سوال کي مڪمل ٿيل آرڪائيو ۾ هڪ خالي ڊاريڪٽري شامل ڪرڻ وانگر سمجهيو. مون کي ڪوبه ڪم ڪندڙ مثال نه مليو. هي ڪوڊ آهي: (اهو واضح طور تي ڏيکاري ٿو ته توهان ڪنهن به فائل کي آرڪائيو ۾ رکي سگهو ٿا، پر هڪ خالي ڊاريڪٽري سان... مون کي خبر ناهي ته ڪيئن جواب ڏيان، مون StackOverFlow تي پوسٽ نه ڪيو، اهڙو سوال ضرور هوندو. downvoted) جيڪڏهن ڪنهن وٽ ڪا تجويز هجي ته لکو.

    public class Main {
        public static void main(String[] args) {
            String[] myFiles = {"D:\\forJava\\MyArtifactName\\packForTest\\res2.txt",
                    "D:\\forJava\\MyArtifactName\\packForTest\\res.txt",
                    "D:\\forJava\\MyArtifactName\\packForTest\\res4.txt",
                    "D:\\forJava\\MyArtifactName\\packForTest\\testDir\\"
                    };
            String zipFile = "D:\\forJava\\MyArtifactName\\packForTest\\res.zip";
            ZipUtility zipUtil = new ZipUtility();
            try {
                zipUtil.zip(myFiles, zipFile);
    
            } catch (Exception ex) {
                // some errors occurred
                ex.printStackTrace();
            }
        }
    }

    سوال آخري testDir بابت آهي، JVM ان کي نتيجو آرڪائيو ۾ نٿو رکي، ٻين سڀني txt فائلن سان گڏ اهو ڪم ڪري ٿو.

    ZipUtility.java:

    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    public class ZipUtility {
    
        private static final int BUFFER_SIZE = 4096;
    
        public void zip(List<File> listFiles, String destZipFile) throws IOException {
            ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destZipFile));
            for (File file : listFiles) {
                if (file.isDirectory()) {
                    zipDirectory(file, file.getName(), zos);
                } else {
                    zipFile(file, zos);
                }
            }
            zos.flush();
            zos.close();
        }
    
        public void zip(String[] files, String destZipFile) throws IOException {
            List<File> listFiles = new ArrayList<File>();
            for (int i = 0; i < files.length; i++) {
                listFiles.add(new File(files[i]));
            }
            zip(listFiles, destZipFile);
        }
    
        private void zipDirectory(File folder, String parentFolder, ZipOutputStream zos) throws  IOException {
            for (File file : folder.listFiles()) {
                if (file.isDirectory()) {
                    zipDirectory(file, parentFolder + "/" + file.getName(), zos);
                    continue;
                }
                zos.putNextEntry(new ZipEntry(parentFolder + "/" + file.getName()));
                BufferedInputStream bis = new BufferedInputStream(
                        new FileInputStream(file));
                long bytesRead = 0;
                byte[] bytesIn = new byte[BUFFER_SIZE];
                int read = 0;
                while ((read = bis.read(bytesIn)) != -1) {
                    zos.write(bytesIn, 0, read);
                    bytesRead += read;
                }
                zos.closeEntry();
            }
        }
    
        private void zipFile(File file, ZipOutputStream zos)
                throws  IOException {
            zos.putNextEntry(new ZipEntry(file.getName()));
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
                    file));
            long bytesRead = 0;
            byte[] bytesIn = new byte[BUFFER_SIZE];
            int read = 0;
            while ((read = bis.read(bytesIn)) != -1) {
                zos.write(bytesIn, 0, read);
                bytesRead += read;
            }
            zos.closeEntry();
        }
    }

    ھتان کان ڪوڊ

  6. انهن جي ضرورت ڇو آهي Properties؟

    Propertiesهڪ ملڪيت فائل آهي. ان جي جوڙجڪ: اهم - قدر. اهڙين فائلن سان ڪم ڪرڻ لاءِ، جاوا وٽ هڪ ڪلاس آهي Properties، ان کان ورثي ۾ مليل آهيHashTable<Object, Object>

    ھن کي ھڙپ ڪرڻ بابت ھڪڙو مضمون آھي - Java Properties file example

  7. فائل ۾ ڪهڙي شڪل ۾ ڊيٽا محفوظ ٿيل آهي .properties؟

    مکيه معنيٰ آهي.

  8. ڇا Propertiesان کي فائل مان لوڊ ڪرڻ کان پوء هڪ اعتراض ۾ ڊيٽا کي تبديل ڪرڻ ممڪن آهي؟

    جيڪڏھن اھو ورثي ۾ مليل آھي HashMap، ته پوءِ توھان ڪري سگھو ٿا، صرف پوءِ توھان کي ھن فائل ۾ تبديلين کي ختم ڪرڻ جي ضرورت پوندي. ھن لاء ھڪڙو طريقو آھي setProperty.

    هتي جو ڪوڊ آهي:

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    /**
     * Created by Роман on 12.09.2016.
     */
    public class LoadAndSetProperties {
    
        public static void main(String[] args) {
    
            Properties prop = new Properties();
            InputStream input = null;
            try {
    
                input = new FileInputStream("D:\\forJava\\MyArtifactName\\packForTest\\config.properties");
    
                // load a properties file
                prop.load(input);
    
                // get the property value and print it out
    
    
                prop.setProperty("database", "ddfdfdfdfdf");
                System.out.print(prop.getProperty("database"));
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                if (input != null) {
                    try {
                        input.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    }

    Вывод:

    ddfdfdfdfdf

  9. Зачем нужен класс FileReader?

    Java Docs:

    public class FileReader
    extends InputStreamReader

    Convenience class for reading character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream.

    FileReader is meant for reading streams of characters.

    Класс для чтения символов файлов. Конструкторы этого класса предполагают, что codeировка символов дефолтная и дефолтный размер буфера являются подходящими. Whatбы задать эти значения самостоятельно, следует построить InputStreamReader над FileInputStream. FileReader предназначен для считывания потоков символов.

  10. Зачем нужен класс FileWriter?

    public class FileWriter
    extends OutputStreamWriter

    Convenience class for writing character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable. To specify these values yourself, construct an OutputStreamWriter on a FileOutputStream.

    Whether or not a file is available or may be created depends upon the underlying platform. Some platforms, in particular, allow a file to be opened for writing by only one FileWriter (or other file-writing object) at a time. In such situations the constructors in this class will fail if the file involved is already open. FileWriter is meant for writing streams of characters.

    Класс для записи символов файлов. Конструкторы этого класса предполагают, что codeировка символов дефолтная и дефолтный размер буфера являются приемлемым. Whatбы задать эти значения самостоятельно, следует построить OutputStreamWriter над FileOutputStream. Является ли файл доступен для записи, зависит от используемой платформы. Некоторые платформы разрешают держать файл для записи только одним FileWriter (or другого an object записи file), в одно время. FileWriter предназначен для записи потоков символов. Для написания потоков необработанных byteов, используйте FileOutputStream.

    Эти классы (FileReader и FileWriter) специально ориентированы для работы с текстом и строками.

تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION