Хорошо, я постараюсь быть прямым.
Я работаю над приложением для обмена файлами, которое основано на общей архитектуре Client / Serer. У меня также есть класс HandleClient, но это не особенно важно здесь.
Я хочу, чтобы пользователи могли искать определенный файл, который можно сохранить в общих папках других пользователей. Например, 3 пользователя подключены к серверу, и у них всех есть свои общие папки. Один из них хочет выполнить поиск файла с именем «Madonna», и приложение должно перечислить все файлы, содержащие это имя, и рядом с этим именем файла должна быть информация о пользователях, которые имеют / имеют требуемый файл. Эта информация может быть либо именем пользователя, либо IP-адресом. Вот класс User, способ его написания (так хотели мои начальники):
import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;
public class User {
public static String username;
public static String ipAddress;
public User(String username, String ipAddress) {
username = username.toLowerCase();
System.out.println(username + " " + ipAddress);
}
public static void fileList() {
Scanner userTyping = new Scanner(System.in);
String fileLocation = userTyping.nextLine();
File folder = new File(fileLocation);
File[] files = folder.listFiles();
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < files.length; i++) {
list.add(i, files[i].toString().substring(fileLocation.length()));
System.out.println(list.get(i));
}
}
public static void main(String args[]) {
System.out.println("Insert the URL of your shared folder");
User.fileList();
}
}
Этот класс хранит атрибуты конкретного пользователя (имя пользователя, IP-адрес), а также создает список файлов из общей папки этого конкретного пользователя. тип списка ArrayList, так и должно быть, опять же, мои начальники сказали мне.
С другой стороны, мне нужен другой класс, который называется RequestForFile (String fileName), целью которого является поиск определенного файла в ArrayLists файлов всех пользователей, которые вошли в систему в момент поиска.
Вот так это должно выглядеть, и именно здесь мне особенно нужна ваша помощь, потому что я получаю сообщение об ошибке и не могу закончить урок.
import java.util.ArrayList;
public class RequestForFile {
public RequestForFile(String fileName) {
User user = new User("Slavisha", "84.82.0.1");
ArrayList<User> listOfUsers = new ArrayList();
listOfUsers.add(user);
for (User someUser : listOfUsers) {
for (String request : User.fileList()) {
if (request.equals(fileName))
System.out.println(someUser + "has that file");
}
}
}
}
Идея состоит в том, чтобы пользователь просматривал списки других пользователей и возвращал пользователей с местоположением требуемого файла.
GUI в стороне пока, я доберусь до него, когда я исправлю эту проблему.
Любая помощь приветствуется.
Спасибо
Я здесь, чтобы ответить на все вопросы по этому вопросу.