我試圖將audio file
從服務器傳輸到客戶端,並將其寫入另一個文件。 server
正在從客戶端讀取文件,但它正在不斷閱讀文件內容而忽略新行。例如,有一個像「我正在做客戶端服務器程序」的文本,在文件的下一行是「Java」。服務器讀作「我在做客戶端服務器編程Java
」。 我的問題是如何逐行讀取內容系..Java ::服務器中的客戶端服務器程序沒有按行讀取文件中的文本
我的代碼如下...
*
服務器
**try
{
` try
{
System.out.println("Im server waiting for client request");
ss=new ServerSocket(2005);
Socket s=ss.accept();
InputStream is = s.getInputStream();//Input Stream
BufferedReader fileRead =new BufferedReader(new InputStreamReader(is));
String fname = fileRead.readLine();
OutputStream os = s.getOutputStream();//socket output stream
PrintWriter pw = new PrintWriter(os, true);
BufferedReader br = new BufferedReader(new FileReader(fname));//read File
String str;//initiating string and StringBuffer
StringBuilder sb=new StringBuilder();
while((str = br.readLine()) != null) // reading line-by-line from file
{
sb.append(str);//append to stringBuffer sb
}
System.out.println("The string is in server" +sb);
pw.println(sb);
pw.flush();
pw.close();
is.close();
fileRead.close();
os.close();
pw.close();
br.close();
}
catch(Exception e)
{
e.getMessage();
e.getStackTrace();
e.getSuppressed();
}`
The Client side::
try {
System.out.println("Im client ..sending request");
Socket s=new Socket("127.0.0.1",2005);//Initiate Socket
System.out.println("Enter filename");
BufferedReader bw=new BufferedReader(new InputStreamReader(System.in));//Take fileName from keyBoard
String filename=bw.readLine();//Read filename into a string
OutputStream dout=new DataOutputStream(s.getOutputStream());//output Stream
PrintWriter pw=new PrintWriter(dout,true);
pw.println(filename);//write filename to socket
InputStream is = s.getInputStream();//Input Stream
BufferedReader in =new BufferedReader(new InputStreamReader(is));
String clstr;
StringBuilder sd=new StringBuilder();
while((clstr=in.readLine())!=null)
{
sd.append(clstr);
//clstr=in.readLine();//Read String From socket into "clstr" string
}
System.out.println("The string in client is" +sd);
File f=new File("A://music/kin.txt");//Open a file
if(!f.exists())
f.createNewFile();//if not existed create it
try
{
//PrintWriter bf=new PrintWriter(new FileWriter(f)); //Write to a file
BufferedWriter bf=new BufferedWriter(new FileWriter(f));
//bf.append(clstr);
//bf.write(sd);
bf.append(sd);
bf.flush();
bf.close();
}
catch(Exception e)
{
e.getMessage();
e.getSuppressed();
e.getStackTrace();
}
System.out.println("The Content written is" +sd);
bw.close();
pw.close();
dout.close();
in.close();
is.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
音頻文件中的新行? – Thihara
請編輯您的代碼的縮進並刪除一些大量的連續空行。您更容易讓人們閱讀您的代碼,您就越有可能得到答案。 –