Java TCP Server не читает содержимое файла

Программа Java для TCP-сервера и TCP-клиента приведена ниже. Я поместил файл, который нужно прочитать, в ту же папку, где находятся мои Java-программы. Теперь, когда я ввожу имя файла из TCP-клиента, TCP-сервер выдает вывод «Файл не найден». Где я не прав? Ваша помощь очень ценится.

TCP-СЕРВЕР

import java.util.Scanner;
import java.net.*;
import java.io.*;
public class TcpServer{
    public static void main(String[] args)throws IOException{
        ServerSocket ss = null;
        Socket s = null;
        try{
            ss = new ServerSocket(3000);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        while(true){
            try{
                System.out.println("Server Ready....");
                s = ss.accept();
                System.out.println("Client Connected...");
                InputStream istream = s.getInputStream();
                Scanner fread = new Scanner(new 
                        InputStreamReader(istream));
                String fileName = fread.nextLine();
                System.out.println("Reading contents of " + fileName);
                Scanner contentRead = new Scanner(new 
                        FileReader(fileName));
                OutputStream ostream = s.getOutputStream();
                PrintWriter pwrite = new PrintWriter(ostream , true);
                while(contentRead.hasNext())
                    pwrite.println(contentRead.nextLine());
                pwrite.close();
                s.close();
            }
            catch(FileNotFoundException e){
                OutputStream ostream = s.getOutputStream();
                PrintWriter pwrite = new PrintWriter(ostream , true);
                System.out.println("File Not Found");
                pwrite.close();
            }
        }
    }
}

TCP-КЛИЕНТ

import java.net.*;
import java.io.*;
import java.util.Scanner;
public class TcpClient{
    public static void main( String[] args ){
        Socket s;
        while(true){
            try{
                s = new Socket("127.0.0.1",3000);
                OutputStream ostream = s.getOutputStream();
                System.out.println("Enter filename");
                Scanner input = new Scanner(System.in);
                String fname = input.nextLine();
                PrintWriter pwrite = new PrintWriter(ostream, true);
                pwrite.println(fname);
                InputStream istream = s.getInputStream();
                Scanner cRead = new Scanner(new InputStreamReader(istream));
                while(cRead.hasNext())
                    System.out.println(cRead.nextLine());
                pwrite.close();
                s.close();
            }
            catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
144
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что вы запускаете серверное/клиентское приложение в системе Windows. Я думаю, что это проблема, связанная с именем пути. Поэтому вы можете передать имя файла с двойной обратной косой чертой, как показано в следующем примере:

C:\\Documents and Settings\\user\\test.txt

Другие вопросы по теме