JAVA中类与链表

本文介绍了一个Java程序如何从文件中读取并解析USB和摄像头音频设备的信息,包括设备ID、名称、供应商ID和产品ID等。通过具体代码示例展示了如何使用Java标准库中的IO组件来实现这一目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.test.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class test {
  private static class AudioSetting{
    String name;
    String deviceid;
    String vid;
    String pid;
  }
  private static String getcurusbaudio(){
    String filename = "./usb_audio_info";
    File file = new File(filename);
    BufferedReader reader = null;
    String tempString = null;
    try{
      int i = 1;
      reader = new BufferedReader(new FileReader(file));
      tempString = reader.readLine();
      reader.close();
    }catch (IOException e) {
       e.printStackTrace();
    }
    return tempString;
  }
  private static String getcurcamaudio(){
    ArrayList<AudioSetting>  settings = new ArrayList<AudioSetting>();
    String curcamaudio = null;
    String name = null;
    String deviceid = null;
    String filename = "./cards";
    File file = new File(filename);
    BufferedReader reader = null;
    try {
      int i = 1;
      reader = new BufferedReader(new FileReader(file));
      String tempString = null;
      while ((tempString = reader.readLine()) != null) {
        AudioSetting tmpcard = new AudioSetting();
        if((i % 3 == 1) && (tempString.length() > 18)){
          deviceid = tempString.substring(1,2);
          name = tempString.substring(4,19);
        }
        if((i % 3 == 0) && (tempString.length() > 41)){
          tmpcard.deviceid = deviceid;
          tmpcard.name = name;
          tmpcard.vid = tempString.substring(33,37);
          tmpcard.pid = tempString.substring(38,42);
          settings.add(tmpcard);
        }
        i++;
      }
      reader.close();
    }catch (IOException e) {
       e.printStackTrace();
    }
    int j = 0;
    for(j = 0; j <= settings.size() - 1; j++){
      if(!settings.get(j).name.substring(0,5).equals("Audio")){
        curcamaudio = settings.get(j).vid + settings.get(j).pid + " " + settings.get(j).deviceid + " 0";
        break;
      }
    }
    settings.clear();
    return curcamaudio;
  }

  public static void main(String[] args){
    String setcamaudio = null;
    String getcuraudio = null;
    getcuraudio = getcurusbaudio();
    setcamaudio = getcurcamaudio();
    System.out.println("getcuraudio is " + getcuraudio);
    System.out.println("setcamaudio is " + setcamaudio);
    System.out.println("!getcuraudio.equals(setcamaudio) is " + !getcuraudio.equals(setcamaudio));
  }
}


cards

 0 [AMLM6TV        ]: SOC-Audio - AML-M6TV
                      AML-M6TV
                      USBid -
 1 [Audio          ]: USB-Audio - Wireless Audio
                      NA Wireless Audio at usb-lm0-1.4, full speed
                      USBid - USB1a1d:c001
 2 [Camera         ]: USB-Audio - USB 2.0 Camera
                      Sonix Technology Co., Ltd. USB 2.0 Camera at usb-lm0-1.2, high speed
                      USBid - USB0c45:6340
 3 [RX             ]: USB-Audio - USB RX
                      NANO  IC USB RX at usb-lm2-1, full speed
                      USBid - USB1d5a:c0b3

usb_audio_info

1d5ac0b3 2 0

2.编译

javac test.java

3.设置环境变量并运行

CLASSPATH=$CLASSPATH:.

echo $CLASSPATH

java test

结果

getcuraudio is 1d5ac0b3 2 0

setcamaudio is 0c456340 2 0




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值