কিভাবে জাভা সম্পত্তি ফাইল ব্যবহার করবেন?


219

আমি জাভা সম্পত্তি ফাইল হিসাবে সংরক্ষণ করতে চান কনফিগারেশন মানগুলির কী / মান জোড়ার একটি তালিকা রয়েছে এবং পরে লোড এবং এর মাধ্যমে পুনরাবৃত্তি করতে পারি।

প্রশ্নাবলী:

  • আমার কি ক্লাসের মতো ফাইলটি একই প্যাকেজে সঞ্চয় করতে হবে যা সেগুলি লোড করবে, বা এটি নির্দিষ্ট করার মতো কোনও নির্দিষ্ট জায়গা আছে?
  • ফাইলটির কোনও নির্দিষ্ট এক্সটেনশনে শেষ হওয়া দরকার বা .txtঠিক আছে?
  • আমি কোডটিতে ফাইলটি কীভাবে লোড করতে পারি
  • এবং আমি কীভাবে অভ্যন্তরের মানগুলি দিয়ে পুনরাবৃত্তি করতে পারি?

উত্তর:


245

আপনি সম্পত্তিতে একটি ইনপুট স্ট্রিম পাস করতে পারেন, যাতে আপনার ফাইলটি যে কোনও জায়গায় হতে পারে এবং যেকোন কিছুতেই ডাকা যায়।

Properties properties = new Properties();
try {
  properties.load(new FileInputStream("path/filename"));
} catch (IOException e) {
  ...
}

হিসাবে পরিবেশন করা:

for(String key : properties.stringPropertyNames()) {
  String value = properties.getProperty(key);
  System.out.println(key + " => " + value);
}

কী বৈশিষ্ট্য ফাইলটিতে উপস্থিত না থাকলে কোন মানটি ফেরত দেওয়া হয়?
মিতাক্ষ গুপ্ত

2
@ মিতাক্ষগুপ্ত যদি আপনার পাস করা নামের কোনও সম্পত্তি যদি ফাইল বা ডিফল্ট বৈশিষ্ট্যের তালিকায় না পাওয়া যায় তবে তা ফিরে আসে null। দেখুন Javadoc
drigoangelo

3
এটি কীভাবে এর সাথে তুলনা করে properties.load(PropertiesReader.class.getResourceAsStream("/properties.properties")); , getResourceAsStreamবনাম FileInputStream? সুবিধা - অসুবিধা?
থুফির

80
  • আপনি করতে পারেন ফাইল যে কোন জায়গায় আপনার পছন্দ সংরক্ষণ করি। আপনি যদি এটি আপনার জার ফাইলটিতে রাখতে চান তবে আপনি এটি ব্যবহার করতে Class.getResourceAsStream()বা ClassLoader.getResourceAsStream()এটি অ্যাক্সেস করতে চাইবেন । এটি যদি ফাইল সিস্টেমে থাকে তবে এটি কিছুটা সহজ।

  • যে কোনও এক্সটেনশান ঠিক আছে, যদিও আমার অভিজ্ঞতায় প্রজননগুলি বেশি সাধারণ

  • ব্যবহার ফাইলটি লোড Properties.load, একটি কথা প্রসঙ্গে InputStreamবা StreamReaderআপনি জাভা 6. ব্যবহার করছেন (আপনি যদি করছে জাভা 6 ব্যবহার করে, আমি সম্ভবত হল UTF-8 এবং ব্যবহার করতে চাই Readerএকটি স্ট্রিম জন্য ডিফল্ট পরিবর্তে ISO-8859-1- এনকোডিং। )

  • পুনরুক্তি এটা মাধ্যমে আপনি একটি স্বাভাবিক মাধ্যমে পুনরুক্তি চাই যেমন Hashtable(যা Propertiesথেকে আহরিত), যেমন ব্যবহার keySet()। বিকল্পভাবে, আপনি ফিরে আসা গণনাটি ব্যবহার করতে পারেন propertyNames()


1
ধন্যবাদ জোন, পরবর্তী জিনিস আমি জানি আমি জোডায় কিছু সন্ধান করব এবং আপনি এটির উত্তরও দিন।
শিখা

27

আপনি যদি শ্রেণি ফু হিসাবে একই প্যাকেজটিতে বৈশিষ্ট্য ফাইল রাখেন, আপনি সহজেই এটি লোড করতে পারেন

new Properties().load(Foo.class.getResourceAsStream("file.properties"))

প্রদত্ত বৈশিষ্ট্যগুলি হ্যাশটেবলকে প্রসারিত করে আপনি হ্যাশটেবলের মতো মানগুলি একইভাবে পুনরাবৃত্তি করতে পারেন।

যদি আপনি * .properties এক্সটেনশন ব্যবহার করেন তবে আপনি সম্পাদক সমর্থন পেতে পারেন, যেমন Eclipse এর একটি বৈশিষ্ট্য ফাইল সম্পাদক রয়েছে।


5
আপনি এটি করতে পারেন - তবে আমি একই প্যাকেজে সম্পত্তি ফাইলগুলি সংরক্ষণ করা পছন্দ করি না। আপনি আপনার অ্যাপ্লিকেশনটিতে সমস্ত জায়গায় ছড়িয়ে থাকা সম্পত্তি ফাইলগুলি শেষ করেন। আমি বরং সমস্ত বৈশিষ্ট্যের ফাইলগুলিকে অ্যাপ্লিকেশনের মূলের মধ্যে সঞ্চয় করে রাখতাম এবং এগুলিকে "class.getResourceAsStream (" \ file.properties ")" বা অন্য কোনও পরিচিত স্থানে লোড করব।
Nate

নাট, সত্য। তবে কিছু পরিস্থিতিতে দৃশ্যে মোতায়েন করা অবস্থানটি জানা যায় না (যেমন আপনার নির্দিষ্ট উপাদানটির প্রতিটি কিছু আর্কাইভে বান্ডিল করা হয়েছে)। এই জাতীয় ক্ষেত্রে এটি 'ক্লাসের সাথেই হয়, যেখানেই সেই শ্রেণিটি শেষ হয় না' বলা যথেষ্ট সুবিধাজনক হতে পারে। ফাইলগুলি সর্বত্র ছড়িয়ে দেওয়া এড়াতে, সমস্ত সম্পত্তি ফাইলের জন্য একটি একক কনফিগার প্যাকেজ ব্যবহার করা যেতে পারে।
ফ্যাবিয়ান স্টেগ

1
ফ্যাবিয়ান, এই দুটি ক্ষেত্রেই আমার মন্তব্য নিয়ে কাজ করে - এটি ক্লাসপথের উপর ভিত্তি করে - ফাইল সিস্টেমের ভিত্তিতে নয়।
Nate

2
যে কেউ নেটের উদাহরণটি কাজ করার চেষ্টা করছেন- ব্যাকস্ল্যাশ একটি ফরোয়ার্ড স্ল্যাশ দিয়ে প্রতিস্থাপন করা উচিত। সুতরাং এক্ষেত্রে: 'class.getResourceAsStream ("/ file.properties")'
হ্যাশ_কলেশন

12

propertiesফাইলগুলি তৈরি এবং পড়ার অনেকগুলি উপায় রয়েছে :

  1. একই প্যাকেজে ফাইল সঞ্চয় করুন।
  2. .propertiesআপনি নিজের পছন্দ করতে পারেন তবে এক্সটেনশনের প্রস্তাব দিন ।
  3. ব্যবহারের নিবন্ধ অবস্থিত শ্রেণীর java.utilপ্যাকেজ => Properties, ListResourceBundle, ResourceBundleক্লাস।
  4. বৈশিষ্ট্যগুলি পড়তে, পুনরাবৃত্তিকারী বা গণক Propertiesবা java.lang.Systemশ্রেণীর সরাসরি পদ্ধতি ব্যবহার করুন ।

ResourceBundle শ্রেণী:

 ResourceBundle rb = ResourceBundle.getBundle("prop"); // prop.properties
 System.out.println(rb.getString("key"));

Properties শ্রেণী:

Properties ps = new Properties();
ps.Load(new java.io.FileInputStream("my.properties"));

হাই এভিডি, কেন আমাদের .propertiesকেবল এক্সটেনশন দরকার ? '.txt' এক্সটেনশন দিয়ে কী ভুল? আমাকে সাহায্য করুন।
আতিশ শিম্পি

@atishshimpi প্রোপার্টি ধরনের সঙ্গে কাজ করার সময় আবশ্যক নয় কিন্তু এটা ResourceBundle জন্য আবশ্যিক - doc- পড়া docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html
adatapost

5

এটি বৈশিষ্ট্য ফাইল লোড করে:

Properties prop = new Properties();
InputStream stream = ...; //the stream to the file
try {
  prop.load(stream);
} finally {
  stream.close();
}

আমি .properties ফাইলটি এমন একটি ডিরেক্টরিতে রেখেছিলাম যেখানে আমার সমস্ত কনফিগারেশন ফাইল রয়েছে, আমি এটি অ্যাক্সেস করে এমন শ্রেণীর সাথে এটি রাখি না, তবে এখানে কোনও বিধিনিষেধ নেই।

নামের জন্য ... আমি ভার্বোসটিটির জন্য .প্রযুক্তিগুলি ব্যবহার করি, আমি মনে করি না যে আপনি এটির নাম লেখান you আপনি না চাইলে ব্যক্তিগত।


তবে, সম্পত্তি ফাইলগুলির কিছু "এক্সটেনশানস" .properties এক্সটেনশান ধরে নেয় - উদাহরণস্বরূপ I18N- এ ব্যবহৃত রিসোর্সবাণ্ডল।
Nate

5

উদাহরণ:

Properties pro = new Properties();
FileInputStream in = new FileInputStream("D:/prop/prop.properties");
pro.load(in);
String temp1[];
String temp2[];
// getting values from property file
String username = pro.getProperty("usernamev3");//key value in prop file 
String password = pro.getProperty("passwordv3");//eg. username="zub"
String delimiter = ",";                         //password="abc"
temp1=username.split(delimiter);
temp2=password.split(delimiter);

যদি আপনার 3 টি প্রপ্রেটি ফাইল থাকে?
অ্যাঞ্জেলিনা

4

সম্পত্তি উত্তরাধিকার হয়ে গেছে। বৈশিষ্ট্য শ্রেণিতে পছন্দসমূহ শ্রেণি পছন্দ করা হয়।

পছন্দসই ডেটাগুলির শ্রেণিবদ্ধ সংগ্রহের একটি নোড। এই শ্রেণিটি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারী এবং সিস্টেমের পছন্দ ও কনফিগারেশন ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে দেয়। এই ডেটা প্রয়োগ-নির্ভর নির্ভর ব্যাক স্টোরটিতে অবিচ্ছিন্নভাবে সংরক্ষণ করা হয়। সাধারণ বাস্তবায়নের মধ্যে ফ্ল্যাট ফাইল, ওএস-নির্দিষ্ট রেজিস্ট্রি, ডিরেক্টরি সার্ভার এবং এসকিউএল ডাটাবেস অন্তর্ভুক্ত থাকে। এই শ্রেণীর ব্যবহারকারীর ব্যাকিং স্টোরের বিশদ নিয়ে উদ্বিগ্ন হওয়ার দরকার নেই।

বৈশিষ্ট্যগুলি থেকে আলাদা যা স্ট্রিং ভিত্তিক কী-মান জোড় রয়েছে, Preferencesশ্রেণীর কাছে পছন্দগুলি ডেটা স্টোরে আদিম ডেটা পেতে এবং রাখার জন্য বিভিন্ন পদ্ধতি রয়েছে। আমরা কেবল নিম্নলিখিত ধরণের ডেটা ব্যবহার করতে পারি:

  1. দড়ি
  2. বুলিয়ান
  3. ডবল
  4. ভাসা
  5. int- এ
  6. দীর্ঘ
  7. বাইট অ্যারে

বৈশিষ্ট্য ফাইলটি লোড করতে হয় হয় আপনি নিখুঁত পথ সরবরাহ করতে getResourceAsStream()পারেন বা আপনার শ্রেণিপথের মধ্যে যদি বৈশিষ্ট্য ফাইল উপস্থিত থাকে তবে ব্যবহার করতে পারেন।

package com.mypack.test;

import java.io.*;
import java.util.*;
import java.util.prefs.Preferences;

public class PreferencesExample {

    public static void main(String args[]) throws FileNotFoundException {
        Preferences ps = Preferences.userNodeForPackage(PreferencesExample.class);
        // Load file object
        File fileObj = new File("d:\\data.xml");
        try {
            FileInputStream fis = new FileInputStream(fileObj);
            ps.importPreferences(fis);
            System.out.println("Prefereces:"+ps);
            System.out.println("Get property1:"+ps.getInt("property1",10));

        } catch (Exception err) {
            err.printStackTrace();
        }
    }
}

এক্সএমএল ফাইল:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>
<preferences EXTERNAL_XML_VERSION="1.0">
<root type="user">
<map />
<node name="com">
  <map />
  <node name="mypack">
    <map />
    <node name="test">
      <map>
        <entry key="property1" value="80" />
        <entry key="property2" value="Red" />
      </map>
    </node>
  </node>
</node>
</root>
</preferences>

পছন্দসই স্টোরের অভ্যন্তরীণ বিষয়ে এই নিবন্ধটি দেখুন


3

ক্রমানুসারে:

  1. আপনি ফাইলটি যে কোনও জায়গায় সংরক্ষণ করতে পারেন।
  2. কোন প্রসারণ প্রয়োজন।
  3. এটি কীভাবে লোড করা যায় তা মন্টেক্রিস্টো চিত্রিত করেছেন । এটা ঠিক কাজ করা উচিত।
  4. প্রপার্টিমনাম () আপনাকে পুনরাবৃত্তি করার জন্য একটি গণনা দেয়।

2. no extension is necessary, আপনি কি দয়া করে আমাকে এই বিবৃতিটির জন্য কোনও রেফারেন্স সরবরাহ করতে পারেন দয়া করে। আমার তাতে বিভ্রান্তি আছে।
আতিশ শিম্পি

নোট করুন যে আপনি কোনও ইনপুট স্ট্রিমের মাধ্যমে বৈশিষ্ট্যগুলি লোড করতে পারেন। যেমন এই বৈশিষ্ট্যগুলির কোনও জ্ঞান নেই যে ইনপুটস্ট্রিমটি কোথা থেকে এসেছে (কোনও ফাইল? একটি সকেট?) এবং ফলস্বরূপ নামকরণের মান প্রয়োগ করতে পারে না
ব্রায়ান অগ্নিউ

3

ডিফল্টরূপে, জাভা এটি আপনার অ্যাপ্লিকেশনের ওয়ার্কিং ডিরেক্টরিতে খোলে (এই আচরণটি আসলে ব্যবহৃত ওএসের উপর নির্ভর করে)। একটি ফাইল লোড করতে, করুন:

Properties props = new java.util.Properties();
FileInputStream fis new FileInputStream("myfile.txt");
props.load(fis)

এই হিসাবে, যে কোনও ফাইল এক্সটেনশন সম্পত্তি ফাইলের জন্য ব্যবহার করা যেতে পারে। অতিরিক্ত হিসাবে, ফাইলটি যে কোনও জায়গায় সংরক্ষণ করা যেতে পারে, যতক্ষণ আপনি এ ব্যবহার করতে পারেন FileInputStream

সম্পর্কিত নোটে আপনি যদি আধুনিক কাঠামো ব্যবহার করেন তবে ফ্রেমওয়ার্কটি কোনও সম্পত্তি ফাইল খোলার অতিরিক্ত উপায় সরবরাহ করতে পারে। উদাহরণস্বরূপ, স্প্রিং ClassPathResourceএকটি জেআর ফাইলের ভিতরে থেকে প্যাকেজের নাম ব্যবহার করে একটি সম্পত্তি ফাইল লোড করার জন্য সরবরাহ করে।

বৈশিষ্ট্যগুলির মাধ্যমে পুনরাবৃত্তি হিসাবে, বৈশিষ্ট্যগুলি লোড হয়ে গেলে তারা java.util.Propertiesবস্তুতে সংরক্ষণ করা হয় , যা propertyNames()পদ্ধতিটি সরবরাহ করে।


3

কোনও বৈশিষ্ট্য ফাইল পড়া এবং এর বিষয়বস্তু এতে লোড করা Properties

String filename = "sample.properties";
Properties properties = new Properties();

input = this.getClass().getClassLoader().getResourceAsStream(filename);
properties.load(input);

নিম্নলিখিতটি একটি এর উপর পুনরাবৃত্তি করার কার্যকর উপায় Properties

    for (Entry<Object, Object> entry : properties.entrySet()) {

        System.out.println(entry.getKey() + " => " + entry.getValue());
    }

3

ইন জাভা 8 আপনার সব সম্পত্তি পেতে

public static Map<String, String> readPropertiesFile(String location) throws Exception {

    Map<String, String> properties = new HashMap<>();

    Properties props = new Properties();
    props.load(new FileInputStream(new File(location)));

    props.forEach((key, value) -> {
        properties.put(key.toString(), value.toString());
    });

    return properties;
}

2

1) আপনার সম্পত্তি ফাইলটি ক্লাসপথে রাখা ভাল তবে আপনি এটি প্রকল্পে যে কোনও জায়গায় রাখতে পারেন।

নীচে আপনি কীভাবে ক্লাসপথ থেকে সম্পত্তি ফাইল লোড করবেন এবং সমস্ত সম্পত্তি পড়বেন।

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

try {

    String filename = "path to property file";
    input = getClass().getClassLoader().getResourceAsStream(filename);
    if (input == null) {
        System.out.println("Sorry, unable to find " + filename);
        return;
    }

    prop.load(input);

    Enumeration<?> e = prop.propertyNames();
    while (e.hasMoreElements()) {
        String key = (String) e.nextElement();
        String value = prop.getProperty(key);
        System.out.println("Key : " + key + ", Value : " + value);
    }

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

2) সম্পত্তি ফাইলগুলির .properties হিসাবে এক্সটেনশন রয়েছে


1

বৈশিষ্ট্যগুলি নিয়ে পুনরাবৃত্তি করার আরও একটি উপায় এখানে রয়েছে:

Enumeration eProps = properties.propertyNames();
while (eProps.hasMoreElements()) { 
    String key = (String) eProps.nextElement(); 
    String value = properties.getProperty(key); 
    System.out.println(key + " => " + value); 
}

2
আমি সম্পূর্ণ দুঃখিত। আমি জেডের উত্তরে কোডটি পর্যালোচনা করেছি এবং এটি বেশ ভালভাবে কাজ করে ... আমি তখন কী ভাবছিলাম তা আমি জানি না ... আসলে তার সমাধানটি আমার চেয়ে ভাল, আমার মনে হয় ...
ডার্তোনি

1

আমি গত বছরের জন্য এই সম্পত্তি ফ্রেমওয়ার্কে লিখেছি। এটি বৈশিষ্ট্যগুলি লোড করার একাধিক উপায় সরবরাহ করবে এবং সেগুলি দৃ strongly়ভাবে টাইপও করা হবে।

Http://sourceforge.net/projects/jhpropertiestyp/ এ একবার দেখুন

JHPropertiesTpeded বিকাশকারীকে দৃ strongly়ভাবে টাইপ করা বৈশিষ্ট্য দেবে। বিদ্যমান প্রকল্পগুলিতে সংহত করতে সহজ। সম্পত্তি ধরণের জন্য একটি বড় সিরিজ দ্বারা পরিচালিত। সম্পত্তি আইও বাস্তবায়নের মাধ্যমে এক-লাইনের বৈশিষ্ট্যগুলিকে আরম্ভ করার ক্ষমতা দেয়। বিকাশকারীকে নিজস্ব সম্পত্তির প্রকার এবং সম্পত্তি io এর তৈরি করার ক্ষমতা দেয়। ওয়েব ডেমোটি উপলভ্য, উপরে প্রদর্শিত স্ক্রিনশট। এছাড়াও যদি আপনি এটি ব্যবহার করতে চান তবে বৈশিষ্ট্যগুলি পরিচালনা করতে কোনও ওয়েব ফ্রন্ট এন্ডের জন্য একটি মানক প্রয়োগ রয়েছে।

প্রকল্পের ওয়েবপৃষ্ঠায় সম্পূর্ণ ডকুমেন্টেশন, টিউটোরিয়াল, জাভাদোক, ফ্যাক্স ইত্যাদি উপলব্ধ।


0

এখানে স্ট্যাটিক ক্লাস প্রস্তুত

import java.io.*;
import java.util.Properties;
public class Settings {
    public static String Get(String name,String defVal){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            FileReader reader = new FileReader(configFile);
            Properties props = new Properties();
            props.load(reader);
            reader.close();
            return props.getProperty(name);
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
            return defVal;
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
            return defVal;
        } catch (Exception ex){
            logger.error(ex);
            return defVal;
        }
    }
    public static Integer Get(String name,Integer defVal){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            FileReader reader = new FileReader(configFile);
            Properties props = new Properties();
            props.load(reader);
            reader.close();
            return Integer.valueOf(props.getProperty(name));
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
            return defVal;
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
            return defVal;
        } catch (Exception ex){
            logger.error(ex);
            return defVal;
        }
    }
    public static Boolean Get(String name,Boolean defVal){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            FileReader reader = new FileReader(configFile);
            Properties props = new Properties();
            props.load(reader);
            reader.close();
            return Boolean.valueOf(props.getProperty(name));
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
            return defVal;
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
            return defVal;
        } catch (Exception ex){
            logger.error(ex);
            return defVal;
        }
    }
    public static void Set(String name, String value){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            Properties props = new Properties();
            FileReader reader = new FileReader(configFile);
            props.load(reader);
            props.setProperty(name, value.toString());
            FileWriter writer = new FileWriter(configFile);
            props.store(writer, Variables.SETTINGS_COMMENT);
            writer.close();
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
        } catch (Exception ex){
            logger.error(ex);
        }
    }
    public static void Set(String name, Integer value){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            Properties props = new Properties();
            FileReader reader = new FileReader(configFile);
            props.load(reader);
            props.setProperty(name, value.toString());
            FileWriter writer = new FileWriter(configFile);
            props.store(writer,Variables.SETTINGS_COMMENT);
            writer.close();
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
        } catch (Exception ex){
            logger.error(ex);
        }
    }
    public static void Set(String name, Boolean value){
        File configFile = new File(Variables.SETTINGS_FILE);
        try {
            Properties props = new Properties();
            FileReader reader = new FileReader(configFile);
            props.load(reader);
            props.setProperty(name, value.toString());
            FileWriter writer = new FileWriter(configFile);
            props.store(writer,Variables.SETTINGS_COMMENT);
            writer.close();
        } catch (FileNotFoundException ex) {
            // file does not exist
            logger.error(ex);
        } catch (IOException ex) {
            // I/O error
            logger.error(ex);
        } catch (Exception ex){
            logger.error(ex);
        }
    }
}

এখানে নমুনা:

Settings.Set("valueName1","value");
String val1=Settings.Get("valueName1","value");
Settings.Set("valueName2",true);
Boolean val2=Settings.Get("valueName2",true);
Settings.Set("valueName3",100);
Integer val3=Settings.Get("valueName3",100);

0

আপনি নিম্নলিখিত পদ্ধতিতে সম্পত্তি ফাইলটি লোড করতে পারেন:

InputStream is = new Test().getClass().getClassLoader().getResourceAsStream("app.properties");
        Properties props =  new Properties();
        props.load(is);

এবং তারপরে আপনি ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে মানচিত্রের উপরে পুনরাবৃত্তি করতে পারেন:

props.stringPropertyNames().forEach(key -> {
            System.out.println("Key is :"+key + " and Value is :"+props.getProperty(key));
        });

0

আমার মতে অন্যান্য উপায়গুলি হ্রাস করা হয় যখন আমরা নীচের মতো এটি খুব সাধারণভাবে করতে পারি:

@PropertySource("classpath:application.properties")
public class SomeClass{

    @Autowired
    private Environment env;

    public void readProperty() {
        env.getProperty("language");
    }

}

এটি খুব সহজ তবে আমি মনে করি এটিই সেরা উপায় !! উপভোগ করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.