Serwer nie odnajduje pliku

0

Witam mam do napisania program,który
zamienia strumienie bajtowe na strumienie znakowe z użyciem klienta i serwera w javie.Serwer niestety nie odnajduje mi tego pliku w swoim katalogu roboczym;(
Oto kod:

 package serwer;
import java.io.*;
import java.net.*;

public class FileServer{
	
	public static void main(String[] srgs){
		try{
			File file = new File("file2.jpg");
			if(file.exists()){
				ServerSocket server = new ServerSocket(8000); // uruchamianie gniazda serwera
				System.out.println("Server run...");	
				while(true){
				
					Socket socket = server.accept();// akceptacja po��czenia z klientem
					System.out.println("Client accepted...");
					
			//		OutputStream os = socket.getOutputStream();//pobieranie bajtowego strumienia WY
			//		BufferedOutputStream bos = new BufferedOutputStream(os);//buforowanie strumienia bajt�w
 				
 				   OutputStreamWriter os = new  OutputStreamWriter(socket.getOutputStream());//pobieranie bajtowego strumienia WY
    			   BufferedWriter bos = new BufferedWriter(os);//
 				
 				
 				//*	OutputStream os = socket.getOutputStream();//pobieranie bajtowego strumienia WY
				//*	BufferedWriter bos = new BufferedWriter(new InputStreamReader (os, "Cp852"));//buforowanie strumienia bajt�w	
 				
 				
 			//	    FileInputStream fis = new FileInputStream(file);//Tworzenie strumienia bajtowego WE	do pliku
			//		BufferedInputStream bis = new BufferedInputStream(fis);//buforowanie strumienia bajt�w
 				
					FileReader fis = new FileReader(file);//Tworzenie strumienia bajtowego WE	do pliku
					BufferedReader bis = new BufferedReader(fis);//buforowanie strumienia bajt�w

					int k = 0;
				//	byte[] data = new byte[512];//tablica (paczka) na dane
					char[] data = new char[512];//tablica (paczka) na dane
					System.out.println("File is sending ");
			//		while((k=bis.read(data))!=-1)//buforowany odczyt danych ze strumienia WE(pliku) 
			//			bos.write(data,0,k);//buforowany zapis do strumienia WY
					while((k=bis.read(data))!=-1)//buforowany odczyt danych ze strumienia WE(pliku) 
						bos.write(data,0,k);//buforowany zapis do strumienia WY	
					System.out.println("File has been sent");
					
			//		bis.close();
			//		bos.close();
					bis.close();
					bos.close();
			
					
					
					socket.close();
					System.out.println("Client disconnected ");
				}
			}else{
				System.err.println("File 'file2.dat' doesn't exist in the main server directory...");
			}
		}catch(Exception e){
			System.err.print(e);
		}
			
		
		
	}	
}

I kod klienta:

 package klient;
import java.io.*;
import java.net.*;

public class FileClient{
	
	public static void main(String[] srgs){
		try{

			Socket socket = new Socket("localhost", 8000);//Nawi�zywanie po��czenia z serwerem
			System.out.println("Connected to server...");

	//		InputStream is = socket.getInputStream();//pobieranie strumienia bajtowego WE
	//		BufferedInputStream bis = new BufferedInputStream(is);//buforowanie strumienia bajt�w

	//*		InputStream is = socket.getInputStream();//pobieranie strumienia bajtowego WE
	//*		BufferedInputStream bis = new BufferedInputStream(is);//buforowanie strumienia bajt�w

			InputStreamReader is = new InputStreamReader (socket.getInputStream());
            BufferedReader bis = new BufferedReader(is);//buforowanie strumienia bajt�w


			File file = new File("file2.jpg");//Otwieranie pliku
			//file.createNewFile();

	//		FileOutputStream fos = new FileOutputStream(file);//strumie� plikowy WY pracuj�cy na bajtach
	//		BufferedOutputStream bos = new BufferedOutputStream(fos);//buforowanie strumienia bajt�w

			FileWriter fos = new FileWriter(file);//strumie� plikowy WY pracuj�cy na bajtach
			BufferedWriter bos = new BufferedWriter(fos);//buforowanie strumienia bajt�w
		
			int k = 0;
	//		byte[] data = new byte[512];//tablica (paczka) na dane
			char[] data = new char[512];//tablica (paczka) na dane
			System.out.println("File is downloading...");
	//		while((k=bis.read(data))!=-1)//buforowany odczyt danych ze strumienia WE(gniazda) 
	//			bos.write(data,0,k);//bororowany zapis do pliku
			while((k=bis.read(data))!=-1)//buforowany odczyt danych ze strumienia WE(gniazda) 
				bos.write(data,0,k);//bororowany zapis do pliku	
			System.out.println("File downloaded");
	//		bis.close();
	//		bos.close();
			bis.close();
			bos.close();
			socket.close();
				

		}catch(Exception e){
			System.err.print(e);
		}
		
		
	}	
	
	
	
}

Dodam,że piszę w netbeansie.
Dzięki za wszelką pomoc

0

Jak uruchamiasz program w NetBeans, to katalogiem bieżącym jest katalog projektu, a nie katalog bin, w którym są klasy. Przenieś plik file2.jpg do katalogu projektu (wtedy dla odmiany nie uruchomisz programu serwera z ręki).

0

Dobra przeniosłem serwer i ten plik do przesłania do katalogu głównego i niby wszystko działa poprawnie z nawiązywaniem połączenia, ale jak program zakończy działanie to nadal nie mam ściągniętego pliku z serwera w katalogu klienta;(

1 użytkowników online, w tym zalogowanych: 0, gości: 1