java - والاوبجكت - شرح class and object



استخدام خصائص في جافا (1)

أنا جديد هنا وأود أن أسأل عن كيفية properties يمكن أن تعمل مع رموز جافا يعني values داخل properties سوف تستخدم كمتغيرات. على سبيل المثال لدي file1.txt و file2.txt داخل config.properties وتخزينه في Arraylist ثم مسح المجلد وإذا تم العثور على الملفات نسخه. عملي يظهر فقط أسماء البيانات من الخصائص التي يتم تخزينها في أرايليست ولكن بلدي مشكلة أخرى هي كيف سيتم نسخ هذه البيانات إلى مجلد آخر.

حتى الآن هذا هو بلدي التعليمات البرمجية

     public class MainClass {

          static Properties prop = new Properties();
    static InputStream input = null;
    static String filename = "";

    public static void main(String[] args) throws IOException {

        File source = new File("D:/ojt");
        File dest = new File("D:/ojt/New folder");


        Properties prop = new Properties();
        InputStream input = null;


        try {

    //    getFiles(filename);


        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
       private static void copyFileUsingStream(File source, File dest) throws IOException {
            InputStream is = null;
            OutputStream os = null;

            try {
                is = new FileInputStream(source);
                os = new FileOutputStream(dest);
                byte[] buffer = new byte[1024];
                int length;
                while ((length = is.read(buffer)) > 0) {
                    os.write(buffer, 0, length);
                }
            } finally {
                is.close();
                os.close();
            }
        }
       private static void copy(String fromPath, String outputPath)
       {
    //       filter = new FileTypeOrFolderFilter(fileType);
           File currentFolder = new File(fromPath);
           File outputFolder = new File(outputPath);
           scanFolder(currentFolder, outputFolder);


       }

      private static void getFiles(String path) throws IOException{
        //Put filenames in arraylist<string>
        String filename = "bydatefilesdir.props";
        input = MainClass.class.getClassLoader().getResourceAsStream(filename);
        Scanner s = new Scanner(input);
        File dir = new File(path);
        final ArrayList<String> list = new ArrayList<String>();
        while (s.hasNextLine()){
            list.add(s.nextLine());
        }
//      ArrayList<String> filenames = new ArrayList<String>();
//      for(File file : dir.listFiles()){
//          filenames.add(file.getName());
//      }

        prop.load(input);
        //Check if the files are in the arraylist
        for (int i = 0; i < list.size(); i++){
            String s1 = list.get(i);
            System.out.println("File "+i+" : "+s1);
        }
        System.out.println("\n");
    }

    private static void copyFileUsingStream(File source, File dest) throws IOException {
        InputStream is = null;
        OutputStream os = null;

        try {
            is = new FileInputStream(source);
            os = new FileOutputStream(dest);
            byte[] buffer = new byte[1024];
            int length;
            while ((length = is.read(buffer)) > 0) {
                os.write(buffer, 0, length);
            }
        } finally {
            is.close();
            os.close();
        }
    }
    private static void copy(String source, String dest)
    {
        //       filter = new FileTypeOrFolderFilter(fileType);
        File currentFolder = new File(source);
        File outputFolder = new File(dest);
        scanFolder(currentFolder, outputFolder);


    }

    private static void scanFolder(File source, File dest)
    {
        System.out.println("Scanning folder [" + source.toString() + "]...\n");
        File[] files = source.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                scanFolder(source, dest);
            } else {
                try {
                    copyFileUsingStream(source, dest);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

بس: آسف للبرمجة الفقيرة جديدة فقط في جافا .. لا يزال التعلم
تم التعديل: لقد أدرجت الرموز المحدثة أعلاه.


أفترض java.util.Properties لديها بناء في أساليب لتحقيق ما تحاول. يرجى الرجوع إلى هذا المثال ، وسوف تجد حلا أفضل.

public class App {

  public static void main( String[] args ){

    Properties prop = new Properties();
    InputStream input = null;

    try {

        String filename = "config.properties";
        input = App.class.getClassLoader().getResourceAsStream(filename);
        if(input==null){
                System.out.println("Sorry, unable to find " + filename);
            return;
        }

        //load a properties file from class path, inside static method
        prop.load(input);

            //get the property value and print it out
            System.out.println(prop.getProperty("file1.txt"));
            System.out.println(prop.getProperty("file2.txt"));


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

}
}




properties