javanio完整代码 javagui代码

【Java问题】有没有大佬给个代码和思路!因为题目要求拷贝Example1-10.java文件从Java_Source到Java目录下,可以把数字拼到文件名的字符串中,从而把Example1-10.java文件,一个一个复制到目标目录下.
完整的Java程序如下
import java.io.File;
import java.IoException;
public class test{
pubilc static void main(String args[])throws IoException{
for(int i=1;i=10;i){
String S1 = "G:/Java_Source/Example" i ".java";
String S2 = "G:/Java/Example" i ".java";
File Source = new File(S1);
File dest = new File(S2);
java.nio.file.Files.copy(Source.toPath(),dest.toPath());
}
System.out.printIn("File copy");
}
}
JAVA用nio写CS程序,服务器端接收到的信息不完整,求助!SocketChannel,Bytebufferwhile(true){
buff.clear();
int len =sc.read(buff);
if(len ==-1){ break;}
buff.flip();
content= charset.decode(buff);
}
利用java.nio的FileChannel能够实现按行读取文件吗?(解决了)利用java.nio的FileChannel能够实现按行读取文件:
具体思路是:设置两个缓冲区,一大一?。蟮幕撼迩看味寥〉牧浚?小的缓冲区存放每行的数据(确保大小可存放文本中最长的那行) 。读取的时候判断是不是换行符13,是的话则返回一行数据,不是的话继续读?。?直到读完文件 。
实现方法:
FileChannel fc=raf.getChannel();
//一次读取文件 , 读取的字节缓存数
ByteBuffer fbb=ByteBuffer.allocate(1024*5);
fc.read(fbb);
fbb.flip();
//每行缓存的字节根据你的实际需求
ByteBuffer bb=ByteBuffer.allocate(500);
//判断是否读完文件
public boolean hasNext() throws IOException {
if(EOF)return false;
if(fbb.position()==fbb.limit()){//判断当前位置是否到了缓冲区的限制
if(readByte()==0)return false;
}
while(true){
if(fbb.position()==fbb.limit()){
if(readByte()==0)break;
}
byte a=fbb.get();
if(a==13){
if(fbb.position()==fbb.limit()){
if(readByte()==0)break;
}
return true;
}else{
if (bb.position()bb.limit()) {
bb.put(a);
}else {
if(readByte()==0)break;
}
}
}
return true;
}
java nio 非阻塞读写具体应该怎么操作,能否给个例子程序package com.java.xiong.Net17;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.Channel;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
public class NServer {
// 用于检测所有的Channel状态的selector
private Selector selector = null;
static final int PORT = 30000;
// 定义实现编码、解码的字符串集对象
private Charset charse = Charset.forName("GBK");
public void init() throws IOException {
selector = Selector.open();
// 通过open方法来打开一个未绑定的ServerSocketChannel是咧
ServerSocketChannel server = ServerSocketChannel.open();
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", PORT);
// 将该ServerSocketChannel绑定到指定的IP地址
server.bind(isa);
// 设置serverSocket已非阻塞方式工作
server.configureBlocking(false);
// 将server注册到指定的selector对象
server.register(selector, SelectionKey.OP_ACCEPT);
while (selector.select()0) {
// 一次处理selector上的每个选择的SelectionKey
for (SelectionKey sk : selector.selectedKeys()) {
// 从selector上已选择的Kye集中删除正在处理的SelectionKey
selector.selectedKeys().remove(sk);
// 如果sk对应的Channel包含客户端的连接请求
if (sk.isAcceptable()) {
// 调用accept方法接收连接,产生服务器段的SocketChennal
SocketChannel sc = server.accept();
// 设置采用非阻塞模式
sc.configureBlocking(false);
// 将该SocketChannel注册到selector
sc.register(selector, SelectionKey.OP_READ);
}
// 如果sk对应的Channel有数据需要读取
if (sk.isReadable()) {
// 获取该SelectionKey对银行的Channel,该Channel中有刻度的数据
SocketChannel sc = (SocketChannel) sk.channel();
// 定义备注执行读取数据源的ByteBuffer
ByteBuffer buff = ByteBuffer.allocate(1024);
String content = "";
// 开始读取数据
try {
while (sc.read(buff)0) {
buff.flip();
content= charse.decode(buff);
}
System.out.println("读取的数据:"content);
// 将sk对应的Channel设置成准备下一次读取
sk.interestOps(SelectionKey.OP_READ);
}
// 如果捕获到该sk对银行的Channel出现了异常,表明
// Channel对应的Client出现了问题,所以从Selector中取消
catch (IOException io) {
// 从Selector中删除指定的SelectionKey
sk.cancel();
if (sk.channel() != null) {
sk.channel().close();
}
}
// 如果content的长度大于0,则连天信息不为空
if (content.length()0) {
// 遍历selector里注册的所有SelectionKey
for (SelectionKey key : selector.keys()) {
// 获取该key对应的Channel
Channel targerChannel = key.channel();
// 如果该Channel是SocketChannel对象
if (targerChannel instanceof SocketChannel) {
// 将读取到的内容写入该Channel中
SocketChannel dest = (SocketChannel) targerChannel;
dest.write(charse.encode(content));
}
}
}
}
}
}
}
public static void main(String [] args) throws IOException{
new NServer().init();
}
}
【javanio完整代码 javagui代码】关于javanio完整代码和javagui代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读