大神帮我看一下为什么我buf.bytebuf readsliceLine会出错

android socket 通讯中有阻塞式的读取吗;尝试了bufferreader.readline似乎不会阻塞 - Android当前位置:& &&&android socket 通讯中有阻塞式的读取吗;尝试了bufandroid socket 通讯中有阻塞式的读取吗;尝试了bufferreader.readline似乎不会阻塞&&网友分享于:&&浏览:670次android socket 通信中有阻塞式的读取吗;尝试了bufferreader.readline似乎不会阻塞;(1)我需要实现的是建立一次连接之后,便可以以阻塞的方式往socket中读写数据;在网上查了下,似乎没有类似代码;敲了段书上的例子,socket读写是通过bufferReader,readline&&printwriter.println(),但总是ANR报错,而且不能传输中文;}最好贴下操作代码;谢谢;------解决方案--------------------
socket监听不就是阻塞式的吗,阻塞式的读写? 不懂啥意思ANR是操作时间太长了,在线程里操作就好了不能传输中文? 这个不清楚,回头试一下看看
------解决方案--------------------
readLine就是不阻塞,直接用read(),这个记得是阻塞的
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有请教大神:我这个类的代码哪出现了问题?为什么实现不了复制?_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:566,955贴子:
请教大神:我这个类的代码哪出现了问题?为什么实现不了复制?收藏
java培训---美国上市公司出品,入学签订就业协议,名企疯抢达内学员.java,O基础小班授课,java专家领衔授课,免费试听,满意后付款!
我小白,不懂。 但我来帮你顶顶贴。
----------来自诺基亚
用Fileinput和fileoutput可以实现,可刚刚看书说那样复制文本容易乱码,用Fileread可以,可是试了一下竟然没有复制上去
求大神啊,,,都睡觉了吗?
试试String line =Filewriter filewriter = ......;while((line = buf.readline)!=null){
....filewriter.write(line);...}
还没学到着,看不懂。
java,就业薪资高,发展前景好,零基础入学,120天入门到精通.线上线下学习任你选,先就业后付款,学员尊享-名企入职通道.先就业后付款!
不对,好像是没有刷新
来人啊…………
……防尘系统重新启动
来这个贴吧问就有人回答
String line=while((line=reader.readLine())!=null){
——来自西伯利亚的,寂寞风中的,一匹狼~
自学的?代码写得真不规范。。。先不说别的。。。你这输出流写在循环里。。你是要new多少个对象?
public Class Client { public static void main(String[] args) {
FileInputStream fis =
FileOutputStream fos =
fis = new FileInputStream(输入流地址);
fos = new FIleOutputStream(输入流地址);
while((data = fis.read)!=-1){
fos.write(data);
}catch(异常处理省略)
处理内容省略。。 } finally{
if(fis != null) fis.close();
if(fos != null) fos.close();
}catch(异常处理省略){
处理内容省略。。
}}============================纯手敲一段代码自己看看吧,手敲获取有错误,但是大体结构是这样,实现读取写入方式有好几种,这里用的是字节输入输出流,也可以创建个数组指定大小用于一次性存储一定大小读取数据再写入,当然也可以用字符输入输出流,可以readLine。。不细说了。
你把filewrite放在循环里面,每当读到,他就会被覆盖
异常捕获换成抛出试试
writer写了之后要flush刷新缓冲区。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或哪个大神可以帮帮我啊
大神!!!大神!!!大神!!!_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:566,955贴子:
哪个大神可以帮帮我啊
大神!!!大神!!!大神!!!收藏
十万火急啊!!!做一个简易日记本,源文件如下package Dimport java.awt.BorderLimport java.awt.Mimport java.awt.MenuBimport java.awt.MenuIimport java.awt.MenuSimport java.awt.PopupMimport java.awt.Timport java.awt.event.ActionEimport java.awt.event.ActionLimport java.awt.event.KeyEimport java.io.BufferedRimport java.io.BufferedWimport java.io.Fimport java.io.FileNotFoundEimport java.io.FileRimport java.io.FileWimport java.io.IOEimport java.util.ArrayLimport java.util.Iimport javax.swing.JBimport javax.swing.JDimport javax.swing.JFimport javax.swing.JOptionPimport javax.swing.JPimport javax.swing.JScrollPimport javax.swing.JSplitPimport javax.swing.JTextAimport javax.swing.JTimport javax.swing.event.TreeSelectionEimport javax.swing.event.TreeSelectionLimport javax.swing.tree.DefaultMutableTreeNpublic class DiaryFrame extends JFrame{//JTree声明为静态,只允许有一个即可static JTree tree=//根节点root,静态,只有一个节点即可static DefaultMutableTreeNode root=new DefaultMutableTreeNode(&我的日记&);//集合nodes保存根节点root上的子节点,每个子节点将成为一本日记//用泛型指明集合中元素是DefaultMutableTreeNode类型数据static ArrayList&DefaultMutableTreeNode&nodes=newArrayList&DefaultMutableTreeNode&();JTextArea jta=new JTextArea(20,30);//空菜单menuMenuBar menu=//三个菜单m1,m2,m3Menu m1,m2,m3;//菜单选项MenuItem m1a,m1b,m1c,m1d,m2a,m2b,m3a,m3b,pma,pmb,//弹出式菜单pMenu,程序中没有实现PopupMenu pMenu=//保存,删除按钮JButton bSave,bD//日记类Diary的引用Diary diary=//界面初始方法public void launchFrame(){int WIDTH=640,HEIGHT=480;setTitle(&简易电子日记本&);setSize(WIDTH,HEIGHT);//设置软件呈现的位置,在屏幕的中间setLocation((int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth()-WIDTH)/2,(int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight()-HEIGHT)/2);setDefaultCloseOperation(EXIT_ON_CLOSE);//初始化菜单条,菜单和菜单选项menu=new MenuBar();pMenu=new PopupMenu();m1=new Menu(&文件&);m2=new Menu(&编辑&);m3=new Menu(&帮助&);m1a=new MenuItem(&新建日记本&);//设置快捷方式为CTRL+Nm1a.setShortcut(new MenuShortcut(KeyEvent.VK_N));m1b=new MenuItem(&保存日记&);m1b.setShortcut(new MenuShortcut(KeyEvent.VK_S));m1c=newMenuItem(&删除日记&);m1c.setShortcut(new MenuShortcut(KeyEvent.VK_D));m1d=new MenuItem(&退出系统&);m1d.setShortcut(new MenuShortcut(KeyEvent.VK_Q));m1.add(m1a);m1.addSeparator();m1.add(m1b);m1.addSeparator();m1.add(m1c);m1.addSeparator();m1.add(m1d);menu.add(m1);m2a=new MenuItem(&复制&);m2a.setShortcut(new MenuShortcut(KeyEvent.VK_C));m2b=new MenuItem(&粘贴&);m2b.setShortcut(new MenuShortcut(KeyEvent.VK_V));m2.add(m2a);m2.add(m2b);menu.add(m2);m3a=new MenuItem(&关于主题&);m3b=new MenuItem(&使用手册&);m3.add(m3a);m3.add(m3b);menu.add(m3);pma=new MenuItem(&新建日记本&);pmb=new MenuItem(&删除日记&);pmc=new MenuItem(&重命名&);pMenu.add(pma);pMenu.addSeparator();pMenu.add(pmb);pMenu.addSeparator();pMenu.add(pmc);//添加菜单条this.setMenuBar(menu);//用根节点root初始化JTreetree=new JTree(root);JScrollPane jsp1=new JScrollPane(tree);JPanel jp=new JPanel();jp.setLayout(new BorderLayout());JScrollPane jsp2=new JScrollPane(jta);jp.add(jsp2,BorderLayout.CENTER);JPanel bottom=new JPanel();bSave=new JButton(&保存&);bDel=new JButton(&删除&);bottom.add(bSave);bottom.add(bDel);jp.add(bottom,BorderLayout.SOUTH);//JSplitPane将容器分割为横向左右两部分JSplitPane splitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jsp1,jp);//添加一个默认日记本“生活日记”DefaultMutableTreeNode n=new Diary(&生活日记&);nodes.add(n);//添加一个新的日记本“学习日记”DefaultMutableTreeNode m=new Diary(&学习日记&);nodes.add(m);//监听类,用于监听JTree和JButtonMyListener listener=new MyListener();tree.addTreeSelectionListener(listener);//调用初始化JTree的方法initTree();bSave.addActionListener(listener);bDel.addActionListener(listener);//菜单的监听类MenuListener menuListener=new MenuListener();m1.addActionListener(menuListener);m2.addActionListener(menuListener);m3.addActionListener(menuListener);this.getContentPane().add(splitPane);this.setVisible(true);}//JTree节点的初始化方法,用于完成树上节点的添加工作private static void initTree(){//将节点集合中的节点,全部添加到树上Iterator&DefaultMutableTreeNode&it=nodes.iterator();while(it.hasNext()){DefaultMutableTreeNode n=it.next();root.add(n);}//节点添加完成后,刷新JTree,并重画,以显示新添加进的节点tree.updateUI();tree.repaint();}//内部类,菜单监听class MenuListener implements ActionListener{DiaryFrame df=new DiaryFrame();@Overridepublic void actionPerformed(ActionEvent e){//获取用户操作的菜单名称String label=((MenuItem)e.getSource()).getLabel();if(label.equals(&文件&)){//根据用户选择的菜单项,实现不同的功能if(e.getActionCommand().equals(&新建日记本&)){//输入对话框,对新建的日记本命名String value=new JOptionPane().showInputDialog(df,&请输入新建日记本的名字!&);//以用户输入的日记本名,新建具有日记本功能的节点DefaultMutableTreeNode node=new Diary(value);//将节点添加到节点集合中nodes.add(node);//重新初始化一次节点DiaryFrame.initTree();}}else if(label.equals(&编辑&)){//对“编辑”菜单的处理//Clipboard cb=getToolkit().getSystemClipboard();}else{//对帮助菜单的处理}}}//内部类,监听JTree节点的选择和JButtonclass MyListener implements ActionListener,TreeSelectionListener{DiaryFrame df=new DiaryFrame();@Overridepublic void actionPerformed(ActionEvent e){C//根据不同的按钮,处理相应时间//“保存”按钮的处理if(e.getSource()==bSave){//用户当前选择的节点nodeDefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//节点node的名字String str=node.toString();//如果节点是叶节点,以“日记本名+月+日”为文件名,将日记文本写入文件if(node.isLeaf()){BufferedWriter out=try{//构造文件名String fileName=node.getParent().getParent().toString()+node.getParent().toString()+str+&.txt&;//构建文件File file=new File(fileName);//文本文件写入流out=new BufferedWriter(new FileWriter(file));out.write(jta.getText(),0,(jta.getText()).length());out.flush();new JOptionPane().showMessageDialog(df,&日记创建成功!&);}catch(IOException err){new JOptionPane().showMessageDialog(df,&日记创建失败!&);err.printStackTrace();}catch(Exception err){err.printStackTrace();}finally{try{if(out!=null)out.close();}catch(IOException e1){e1.printStackTrace();}}}//删除按钮的处理}else if(e.getSource()==bDel){DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();String str=node.toString();if(node.isLeaf()){BufferedWriter out=try{//删除文件的处理,先将预删除的文件名写入&del.bat&文件,再调用del()函数删除String fileName=node.getParent().getParent().toString()+node.getParent().toString()+str+&.txt&;File file=new File(fileName);out=new BufferedWriter(new FileWriter(new File(&del.bat&)));String cmd=&del&+file.getAbsolutePath().toString();out.write(cmd);out.newLine();out.flush();jta.setText(&文件已被删除&);//调用del()函数del();}catch(IOException err){err.printStackTrace();}finally{try{if(out!=null)out.close();}catch(IOException e1){e1.printStackTrace();}}}}}//用于删除日记文件private void del(){//Runtime可以与程序运行环境相连接Runtime rt=Runtime.getRuntime();try{rt.exec(&del.bat&);new JOptionPane().showMessageDialog(df,&日记已被删除!&);}catch(IOException e){e.printStackTrace();}}@Overridepublic void valueChanged(TreeSelectionEvent e){jta.setText(&&);if(e.getSource()==tree){//获取节点DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//只对叶节点处理if(node.isLeaf()){String str=node.toString();for(int i=1;i&=12;i++){if(node.getParent().toString().equals(i+&月&)){BufferedReader br=try{//对于已经存在的日记,将日记文件读入文本区String fileName=node.getParent().getParent().toString()+node.getParent().toString()+str+&.txt&;File file=new File(fileName);br=new BufferedReader(newFileReader(file));String line=while((line=br.readLine())!=null){jta.append(line+&\n&);}}catch(FileNotFoundException err){jta.setText(&未找到日记文件&);err.printStackTrace();}catch(IOException err){err.printStackTrace();}finally{try{if(br!=null)br.close();}catch(IOException e1){e1.printStackTrace();}}}}}}}}//MyDiary的主方法public static void main(String[] args) {DiaryFrame df=new DiaryFrame();df.launchFrame();}}
java培训---美国上市公司出品,入学签订就业协议,名企疯抢达内学员.java,O基础小班授课,java专家领衔授课,免费试听,满意后付款!
package D//import java.io.*;//import javax.swing.event.*;import javax.swing.tree.*;public class Diary extends DefaultMutableTreeNode{//年和月的节点DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13];DiaryFrame df=new DiaryFrame();public Diary(){}public Diary(String name){super(name);//构建“年”节点for(i=1;i&=12;i++){month[i]=new DefaultMutableTreeNode(i+&月&);this.add(month[i]);}for(i=1;i&=12;i++){if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){for(int j=1;j&=31;j++){month[i].add(new DefaultMutableTreeNode(j+&日&));}}else if(i==2){for(int j=1;j&=28;j++){month[i].add(new DefaultMutableTreeNode(j+&日&));}}else{for(int j=1;j&=30;j++){month[i].add(new DefaultMutableTreeNode(&Day&+j));}}}}}
求大神帮忙写一下,不胜感激
救急救急!!!谢谢
前面一个是DiaryFrame。java
后面一个是Diary。java
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 read buf 0 1024 的文章

 

随机推荐