JavaOI流¶
FileInputStream¶
BufferedOutputStream¶
import java.io.*;
import java.util.Scanner;
public class Bu {
public static void main(String[] args) throws IOException {
BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream("1.txt"));
Scanner in=new Scanner(System.in);
String s=in.nextLine();
bufferedOutputStream.write(s.getBytes());//将String转化为byte输出到文件中
bufferedOutputStream.close();
}
}
BufferedInputStream¶
import java.io.*;
public class Bu {
public static void main(String[] args) throws IOException {
BufferedInputStream inputStream=new BufferedInputStream(new FileInputStream("1.txt"));
byte[] bytes=new byte[1024];
int tmp;
while((tmp=inputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0,tmp));//将文件中的byte转化为String输入到程序中
}
intputStream.close();
}
}
Buffered流复制视频¶
import java.io.*;
public class Bu{
public static void main(String[] args) throws IOException {
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream("2.mp4"));
BufferedInputStream inputStream=new BufferedInputStream(new FileInputStream("1.mp4"));
byte[] bytes=new byte[1024];
int tmp;
while((tmp=inputStream.read(bytes))!=-1){
outputStream.write(bytes,0,tmp);
}
outputStream.close();
inputStream.close();
}
}
JavaWeb¶
使用Socket传输文件¶
客户端
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Main {
public static void main(String[] args){
try(Socket socket =new Socket("localhost",8080)) {
FileInputStream fileInputStream=new FileInputStream("1.mp4");
OutputStream stream=socket.getOutputStream();
byte[] bytes=new byte[1024];
int tmp;
while((tmp=fileInputStream.read(bytes))!=-1) {
stream.write(bytes,0,tmp);
}
stream.flush();
}catch (Exception e){
System.out.println("连接失败!!!");
e.printStackTrace();
}
}
}
服务端
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args){
try(ServerSocket server=new ServerSocket(8080)){
Socket socket=server.accept();
FileOutputStream fileOutputStream=new FileOutputStream("net/2.mp4");
InputStream stream=socket.getInputStream();
int tmp;
byte[] bytes=new byte[1024];
while((tmp=stream.read(bytes))!=-1) {
fileOutputStream.write(bytes,0,tmp);
}
fileOutputStream.flush();;
fileOutputStream.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
浏览器访问Socket服务器¶
public static void main(String[] args) {
try(ServerSocket server = new ServerSocket(8080)){ //将服务端创建在端口8080上
System.out.println("正在等待客户端连接...");
Socket socket = server.accept();
System.out.println("客户端已连接,IP地址为:"+socket.getInetAddress().getHostAddress());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //通过
System.out.println("接收到客户端数据:");
while (reader.ready()) System.out.println(reader.readLine()); //ready是判断当前流中是否还有可读内容
OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream());
writer.write("HTTP/1.1 200 Accepted\r\n"); //200是响应码,Http协议规定200为接受请求,400为错误的请求,404为找不到此资源(不止这些,还有很多)
writer.write("\r\n"); //在请求头写完之后还要进行一次换行,然后写入我们的响应实体(会在浏览器上展示的内容)
writer.write("lbwnb!");
writer.flush();
}catch (Exception e){
e.printStackTrace();
}
}