遍历propertys

//初始化properties

Properties pro = new Properties();

try {

    InputStream inStr = ClassLoader.getSystemResourceAsStream("wahaha.properties");

    pro.load(inStr);

} catch (FileNotFoundException e) {

    e.printStackTrace();

} catch (IOException e) {

    e.printStackTrace();

}

 

返回所有的属性名,即键名。

//propertyNames(),返回属性列表中所有键的枚举

Enumeration enu2=pro.propertyNames();

while(enu2.hasMoreElements()){

    String key = (String)enu2.nextElement();

    System.out.println(key);

 

返回所有的属性值。

//Properties 继承于 Hashtableelements()Hashtable的方法,返回哈希表中的值的枚举。

Enumeration enu=pro.elements();

while(enu.hasMoreElements()){

    String key = (String)enu.nextElement();

    System.out.println(key);

 

返回所有的属性(属性名,属性值)。

//Properties 继承于 HashtableentrySet()Hashtable的方法,

//返回此 Hashtable 中所包含的键的 Set 视图。此 collection 中每个元素都是一个 Map.Entry

Iterator it=pro.entrySet().iterator();

while(it.hasNext()){

    Map.Entry entry=(Map.Entry)it.next();

    Object key = entry.getKey();

    Object value = entry.getValue();

    System.out.println(key +":"+value);

}

 

假设wahaha.properties中内容为:

------------------------------

name1=xxxx

name2=yyyyy

name3=zzzzzzz

------------------------------

 

上面的代码将会输出:

--------------------------

name1

name2

name3

xxxx

yyyyy

zzzzzzz

name1:xxxx

name2:yyyyy

name3:zzzzzzz

 

可以使用Windows Core Audio API来获取音频播放设备列表。以下是一个使用C++编写的示例代码,可以列出所有音频播放设备的名称: ```c++ #include <Windows.h> #include <Mmdeviceapi.h> #include <Functiondiscoverykeys_devpkey.h> #include <vector> #include <string> #include <iostream> int main() { HRESULT hr = S_OK; IMMDeviceEnumerator* pEnumerator = NULL; IMMDeviceCollection* pCollection = NULL; IMMDevice* pEndpoint = NULL; IPropertyStore* pProps = NULL; LPWSTR pwszID = NULL; // Create a multimedia device enumerator. hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pEnumerator); if (FAILED(hr)) { std::cout << "CoCreateInstance failed: hr = 0x" << std::hex << hr << std::endl; return 1; } // Enumerate the audio endpoint devices. hr = pEnumerator->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE, &pCollection); if (FAILED(hr)) { std::cout << "EnumAudioEndpoints failed: hr = 0x" << std::hex << hr << std::endl; pEnumerator->Release(); return 1; } UINT count; pCollection->GetCount(&count); std::vector<std::wstring> deviceNames; // Get the name of each endpoint device. for (ULONG i = 0; i < count; i++) { // Get pointer to endpoint number i. hr = pCollection->Item(i, &pEndpoint); if (FAILED(hr)) { std::cout << "IMMDeviceCollection::Item failed: hr = 0x" << std::hex << hr << std::endl; break; } // Get the endpoint ID string. hr = pEndpoint->GetId(&pwszID); if (FAILED(hr)) { std::cout << "IMMDevice::GetId failed: hr = 0x" << std::hex << hr << std::endl; break; } // Open the properties store. hr = pEndpoint->OpenPropertyStore(STGM_READ, &pProps); if (FAILED(hr)) { std::cout << "IMMDevice::OpenPropertyStore failed: hr = 0x" << std::hex << hr << std::endl; break; } PROPVARIANT varName; // Initialize container for property value. PropVariantInit(&varName); // Get the endpoint's friendly-name property. hr = pProps->GetValue(PKEY_Device_FriendlyName, &varName); if (FAILED(hr)) { std::cout << "IPropertyStore::GetValue failed: hr = 0x" << std::hex << hr << std::endl; break; } // Get the endpoint's friendly name. std::wstring deviceName(varName.pwszVal); deviceNames.push_back(deviceName); // Free the endpoint ID string and property store. CoTaskMemFree(pwszID); pwszID = NULL; pProps->Release(); pProps = NULL; pEndpoint->Release(); pEndpoint = NULL; } // Clean up. pEnumerator->Release(); pCollection->Release(); // Print the list of device names. std::cout << "Audio playback devices:" << std::endl; for (size_t i = 0; i < deviceNames.size(); i++) { std::wcout << " " << deviceNames[i] << std::endl; } return 0; } ``` 这段代码使用了COM接口,需要在程序开头调用`CoInitialize`函数来初始化COM。另外,需要将`uuid.lib`和`ole32.lib`库链接到项目中。 运行此程序,将输出当前电脑上所有的音频播放设备名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值