0
私は、txtファイルからいくつかのタグを読み取り、フィールドとしてこれらのタグを持つオブジェクトを作成するJavaプログラムを作成しようとしています。私は問題を持っているコードの一部を掲載しています:ループ内のJavaバッファードリーダー
try{
line = reader.readLine();
while(line != null){
if (!line.trim().equals(" ") && line.trim().equals("ITEM_LIST")) {
line = reader.readLine();
if (line != null && line.trim().equals("{"))) {
line = reader.readLine();
if (line != null) {
if (line.trim().equals("ITEM")) {
line = reader.readLine();
if (line != null) {
if (line.trim().equals("{")) {
if (line != null) {
line = reader.readLine();
while (!((line.trim().startsWith("ITEM_TYPE ")) {
line = reader.readLine();
if((line.trim().startsWith("ITEM_TYPE ")){
String devType = line.trim().substring(10);
}
)
if(devType.toLowerCase() == "tv"){
dev = new TV();
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("CODE ")) {
dev.setCode(line.substring(5).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("MODEL ")) {
dev.setModelName(line.substring(6).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("MODEL_YEAR ")) {
dev.setYear(line.substring(11).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("MANUFACTURER ")) {
dev.setConstructor(line.substring(13).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("PRICE ")) {
dev.setPrice(Double.parseDouble(line.substring(6).trim()));
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("PANEL_TYPE ")) {
dev.setType(line.substring(11).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("DIMENSIONS ")) {
dev.setSize(line.substring(11).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("RESOLUTION ")) {
dev.setResolution(line.substring(10).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("INTERFACES ")) {
dev.setPorts(line.substring(10).trim());
}
}
line = reader.readLine();
if (line != null){
if (line.trim().toUpperCase().startsWith("PIECES ")) {
dev.setPieces(line.substring(7).trim());
}
}
私の質問は、特定のアイテム(例えばテレビ)の作成方法を、私はすべての最初のタグITEM_TYPE
を読み取るために、コードを変更することができますし、他のすべてのタグを読み取り、オブジェクトを完成させます。 txtファイル内のタグの順序は特定ではなく、タグがない場合、フィールドはデフォルト値になります。ここにtxtファイルがあります:
ITEM_LIST
{
ITEM
{
CODE ADLS443
ITEM_TYPE tv
MODEL IDL32KJX4300
MODEL_YEAR 2016
MANUFACTURER Samsung
PRICE 350
PANEL_TYPE LCD
DIMENSIONS 32
RESOLUTION "Full HD"
INTERFACES "HDMI USB SCART"
PIECES 43
}
ITEM
{
CODE KD444211
ITEM_TYPE tv
MODEL KDL49DDR4600
MODEL_YEAR 2014
MANUFACTURER Sony
PRICE 600
PANEL_TYPE LED
DIMENSIONS 49
RESOLUTION "Ultra HD"
INTERFACES "HDMI USB SCART Ethernet WiFi"
PIECES 8
}
ITEM
{
CODE 2445DBS41
ITEM_TYPE blueray
MODEL JVX44R32
MODEL_YEAR 2012
MANUFACTURER LG
PRICE 250
RESOLUTION 1080p
FORMAT BR-W
PIECES 12
}
コードに関する情報がない場合は、ごめんなさい。
if(!line.trim()。equals( "")if(line.trim()。equals( "ITEM_LIST")) )&& line.trim()。equals( "ITEM_LIST")){ –
if(line!= null){if(line.trim()。equals( "{")){同様にend演算子を使用します他に何も持っていないよ –
まず最初に、あなたの最初のコメントで何を意味するのか分かりません。第二に、あなたのコメントは私の質問に全く答えませんし、最後に私はコードの一部を投稿していると言っているので、私のif文は実行されていないため、終了演算子は使用しません。 –