package exer;
import java.io.*;
import java.net.*;
public class SerSocket {
public static void main(String[] args) {
ServerSocket ss = null;
Socket socket = null;
BufferedReader br = null;
InputStreamReader ndis = null;
BufferedWriter nbw = null;
try {
ss = new ServerSocket(8888);
socket = ss.accept();
br = new BufferedReader(new FileReader("e:\\杭州市地图.gif"));
ndis = new InputStreamReader(socket.getInputStream());
nbw = new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream()));
int i = 0;
i=ndis.read();
String s = null;
System.out.println(i);
while ((s = br.readLine()) != null) {
nbw.write(s);
nbw.flush();
System.out.println(i++);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ss.close();
socket.close();
br.close();
ndis.close();
nbw.close();
} catch (IOException e) {
e.printStackTrace();
} }}
////////////////////////////////////////////////////////////////////////////////////////////
package exer;
import java.io.*;
import java.net.*;
public class Clisocket {
public static void main(String[] args) {
Socket socket=null;
BufferedWriter bw=null;
OutputStreamWriter nosw=null;
BufferedReader nbr=null;
try {
socket = new Socket("localhost", 8888);
bw = new BufferedWriter(new FileWriter("java1.jpg"));
nosw = new OutputStreamWriter(socket
.getOutputStream());
nbr = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
nosw.write(12);
String s=null;
int i=10000;
s=nbr.readLine();
while(s!=null){
bw.write(s);
bw.newLine();
s=nbr.readLine();
System.out.println(i++);
}
bw.flush();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket.close();
bw.close();
nosw.close();
nbr.close();
} catch (IOException e) {
e.printStackTrace();
}
}}
import java.io.*;
import java.net.*;
public class SerSocket {
public static void main(String[] args) {
ServerSocket ss = null;
Socket socket = null;
BufferedReader br = null;
InputStreamReader ndis = null;
BufferedWriter nbw = null;
try {
ss = new ServerSocket(8888);
socket = ss.accept();
br = new BufferedReader(new FileReader("e:\\杭州市地图.gif"));
ndis = new InputStreamReader(socket.getInputStream());
nbw = new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream()));
int i = 0;
i=ndis.read();
String s = null;
System.out.println(i);
while ((s = br.readLine()) != null) {
nbw.write(s);
nbw.flush();
System.out.println(i++);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ss.close();
socket.close();
br.close();
ndis.close();
nbw.close();
} catch (IOException e) {
e.printStackTrace();
} }}
////////////////////////////////////////////////////////////////////////////////////////////
package exer;
import java.io.*;
import java.net.*;
public class Clisocket {
public static void main(String[] args) {
Socket socket=null;
BufferedWriter bw=null;
OutputStreamWriter nosw=null;
BufferedReader nbr=null;
try {
socket = new Socket("localhost", 8888);
bw = new BufferedWriter(new FileWriter("java1.jpg"));
nosw = new OutputStreamWriter(socket
.getOutputStream());
nbr = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
nosw.write(12);
String s=null;
int i=10000;
s=nbr.readLine();
while(s!=null){
bw.write(s);
bw.newLine();
s=nbr.readLine();
System.out.println(i++);
}
bw.flush();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket.close();
bw.close();
nosw.close();
nbr.close();
} catch (IOException e) {
e.printStackTrace();
}
}}
解决方案 »
- for字句中声明的变量,其作用范围为什么在for之外仍然有效?
- 急求正则问题!
- 怎么刷新前一次的绘图?
- 如何将"日/月/年"的日期类型转换成"月/日/年"的日期类型?
- 异步IO求救,急!
- 急问怎么获得http URL的目录?!!
- JAVA自带的有哪些package,每个package又包括哪些class,每个class又有哪些method
- 请教Thinking in java中第6章 类再生关于6.2 继承的语法中Detergent.java运行的问题?源代码如下:
- rmi server启动的问题??
- 哪里有Jbuilder学习的书籍下载?(要免费的)谢谢1
- 仅能修改,不能添加和删除的模块设计!希望大家提出优雅的做法
- 崩溃,JSTL初学配置问题。。
你用字符流读图片?
import java.net.*;
public class SerSocket {
public static void main(String[] args) {
File sourceFile=new File("Source.gif");
int bufferLength = 1024;
long fileLength = sourceFile.length();
byte[] buffer = new byte[bufferLength];
ServerSocket ss = null;
Socket socket = null;
OutputStream sOutputStream = null;
FileInputStream fInputStream = null;
try {
ss = new ServerSocket(8888);
System.out.println("启动");
socket = ss.accept();
System.out.println("已连接客户端");
sOutputStream = socket.getOutputStream();
fInputStream = new FileInputStream(sourceFile);
System.out.println("已传送:");
int len = 0;
long fileL = 0;
do{
len = fInputStream.read(buffer);//文件读到buffer
if(len != -1){
fileL += len;
sOutputStream.write(buffer,0,len);//buffer写入socket流
System.out.print("\b\b\b"+fileL*100/fileLength+"%");
}
}while(len != -1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ss.close();
socket.close();
sOutputStream.close();
fInputStream.close();
} catch (IOException e) {
e.printStackTrace();
} } } import java.io.*;
import java.net.*;
public class Clisocket {
public static void main(String[] args) {
Socket socket = null;
InputStream sInputStream = null;
FileOutputStream fOutputStream = null;
int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
File aimFile = new File("Aim.gif");
try {
socket = new Socket("localhost", 8888);
System.out.println("已连接服务端");
sInputStream = socket.getInputStream();
fOutputStream = new FileOutputStream(aimFile);
System.out.println("正在接受...");
int len = 0;
do{
len = sInputStream.read(buffer);//socket流读入buffer
if(len != -1)
fOutputStream.write(buffer,0,len);//buffer写入文件
}while(len != -1);
System.out.println("完毕");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket.close();
sInputStream.close();
fOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} }
看你原来的代码,我猜你是想通过TCP通讯的例子举一反三吧,就是流相关的基础还需加强,看看一般的教材后再多思考就可以了.