Write java code: Copy the files, small_weapons.txt, and large_weapons.txt from the assignment folder on Blackboard and save them to your folder. For testing purposes, you should use the small file. Use the large file when you think the application works correctly. To see what is in the files use a text editor. Nilesh is currently enjoying the action RPG game Torchlight 2 which is an awesome game and totally blows Auction House Simulator 3, oh sorry, that should be Diablo 3, out of the water. He has got a file containing info on some of the unique weapons in the game. The transaction file contains the following information: Weapon Name (string) Weapon Type (string) Damage (int) Weapon Speed (double) … To tell if one weapon is better than another you need to know the Damage Per Second (DPS) the weapon does, since weapons have a different attack speed. DPS is calculated by taking the damage value and dividing it by the attack speed.a) You will write a program that will allow Nilesh to load the file and display the weapon info and DPS of every weapon in the input file. When the user chooses to open a weapon file, they are required to type in the filename. It will then read the 4 values about a particular weapon and then display the 4 values to the console window on one line neatly padded along with the DPS of the weapon. This is repeated until the end of the file. b) Modify your code from a) so that the weapon information written to the console window is also written to a text file. The user should be able to specify the name of the file. Add a header to the beginning of the file which has column headers for each column. At the end of the text file display the total number of weapons in the file. c) Document your code appropriately and add your name and id number as comments at the top of your code. Please also submit this text file you have created. Enter the file you want to search end with .txt: large_weapons.txt 1 Blackfang Bludgeon Great Hammer 489 1.44 339.58333333333337 2 Bones 2 Boneshredder Great Axe 256 0.84 304.76190476190476 3 Comet's Tail Great Sword 872 1.2 726.6666666666667 4 Decapitator Great Sword 188 1.08 174.07407407407408 5 Demolisher Great Hammer 887 1.32 671.9696969696969
时间: 2024-01-31 07:02:27 浏览: 156
```
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class WeaponInfo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the file you want to search end with .txt: ");
String fileName = scanner.nextLine();
File file = new File(fileName);
try {
Scanner fileScanner = new Scanner(file);
FileWriter writer = new FileWriter(new File("weapon_info_output.txt"));
writer.write("Weapon Name\tWeapon Type\tDamage\tWeapon Speed\tDPS\n");
int count = 0;
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
String[] tokens = line.split(" ");
String weaponName = tokens[0];
String weaponType = tokens[1];
int damage = Integer.parseInt(tokens[2]);
double weaponSpeed = Double.parseDouble(tokens[3]);
double dps = damage / weaponSpeed;
System.out.printf("%-20s%-20s%-10d%-15.2f%.2f\n", weaponName, weaponType, damage, weaponSpeed, dps);
writer.write(weaponName + "\t" + weaponType + "\t" + damage + "\t" + weaponSpeed + "\t" + dps + "\n");
count++;
}
System.out.println("Total number of weapons: " + count);
writer.write("Total number of weapons: " + count);
writer.close();
fileScanner.close();
} catch (IOException e) {
System.out.println("Unable to read file: " + fileName);
} catch (NumberFormatException e) {
System.out.println("Invalid file format: " + fileName);
}
scanner.close();
}
}
```
阅读全文