Можете ли вы, чтобы увеличивающаяся переменная определяла значение увеличивающейся переменной в другом файле

#java

Вопрос:

С рассматриваемыми файлами отправитель считывает строки из файла и передает пакет, сохраняя переменную для номера строки, и после прочтения последней строки значение номера строки больше не увеличивается

В файле чтения он распаковывает пакет, печатает его в выходной файл и отображает то, что было передано, мне нужно, чтобы он прекратил запись в файл после того, как он закончит последнюю строку входного файла, но у меня нет возможности отследить это в получающем файле

Я пытался использовать статическое значение int для номера строки, но всякий раз, когда оно вызывается на принимающей стороне, проверка числа возвращает экземпляр 0 вместо текущего значения, рассматриваемый код-это разные методы в разных классах, я пытался сделать логический файл статическим и вызвать его для сравнения в приемнике, но опять же он всегда возвращает значение по умолчанию false

Я открыт для всех предложений, так как ничего из того, что я нахожу в Интернете, не работает, спасибо за любые ответы

 byte[] getMessageToSend() { // sending code  long endTime = System.nanoTime();  try (Streamlt;Stringgt; lines = Files.lines(Paths.get(fileName))){  line = lines.skip(lineNum).findFirst().get();  lineNum  ;  return line.getBytes();  } catch(Exception e){  if(!fileFinish){  fileFinish = true;  long elapsedTime = (endTime - start)/1000000;  System.out.println("Time to send " lineNum " lines of file " fileName ": " elapsedTime " milliseconds");  }  }   System.out.println("Please enter a message to send: ");  try {  BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));   String sentence = inFromUser.readLine();   if(null == sentence)  System.exit(1);  System.out.println("Sending: " sentence);  return sentence.getBytes();   } catch(Exception e) {  System.out.println("IO error: " e);  return null;  }  }  
 void deliverMessage(Packet packet) { //receiving code  byte[] payload = new byte[packet.length];  for(int i=0; ilt;payload.length; i  )  payload[i] = packet.payload[i];  String recvd = new String(payload);  //int lineNumber = ParSender.lineNum;  //System.out.println("line number " lineNumber);  //if(lineNumber gt; 0){  try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("output.txt", true)))){  out.println(recvd);  System.out.println("received payload len: " recvd.length());  } catch (IOException e){}  //}  //else  System.out.println("Received " packet.length " bytes: " new String(payload));  }  

Комментарии:

1. Попробуй static volatile fileFinish .