堆排序,报异常,数组角标越界,求帮忙看看 2C

代码如下:
package com.package5;

public class HeapSort {

public static void main(String[] args) {
    int[] arr={10,50,30,20,60,80,70,90,40};
    System.out.println(arr.length/2);
    HSort(arr); //进行排序

    for(int i:arr)
    System.out.println(i);

}

public static void HSort(int[] a){

    int i;
    for(i=a.length/2;i>0;i--){
        MaxHeap(a,i,a.length);    //构建大顶堆
    }

    for(i=a.length;i>1;i--){
        swap(a,1,i);//将堆顶纪录和当前未排序子序列的最后一个纪录交换

        MaxHeap(a, 1, i-1);  //将a[]数组其余部分重新调整为大顶堆

    }

}

public  static void swap(int[] a, int i, int j) {

    int temp=a[i];
    a[i]=a[j];
    a[j]=temp;

}

public static void MaxHeap(int[] a, int s, int m) {

    int temp,j;
    temp=a[s];

    for(j=2*s;j<=m;j*=2){   //沿关键字较大的孩子节点向下筛选

        if(j<m&&a[j]<a[j+1]){  //!!!!!!!!报 java.lang.ArrayIndexOutOfBoundsException
            ++j;           //j为关键字中较大纪录的下标
        }

        if(temp>=a[j]){
            break;
        }

        a[s]=a[j];
        s=j;

    }

    a[s]=temp;     //插入数据
}

}

2个回答

用调试工具单步循环应该可以发现问题

没看懂这个算法,但我调试了一下 ,第一轮的时候 j=2*4 a[j+1] a[9] 肯定是越界了, 你for循环 改为 for(j=2*s-1;j<=m;j*2) ,或许可行

qq_30101695
嘉嗳玲 数组下标是从0开始,不是1
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Numberpicker 数组角标越界问题
由于近期项目中要是用三级联动,所以选择了Numberpicker来做。但是做到一半发现numberpicker老是出现数组角标越界问题。经过查找资料总有解决了,废话到此!下面看结局方法! 解决方案一  1、当前NumberPicker的最大值大于数组大小时,先setMaxValue再setDisplayedValues。  2、当前NumberPicker的最大值小于数组大小时,
数组索引越界异常
public class NumRmdrnrn private String[] hanArr="壹","贰","叁","肆","伍","陆","柒","捌","玖";rn private String[] unitArr="拾","佰","仟";rn private String toHanStr(String numStr)rn rn String result= "";rn int numLen=numStr.length();rn for(int i=0;i
上拉刷新下拉加载listview时,当上拉加载后再下拉的时候报角标越界异常(IndexOutOfBoundsException)。
上拉刷新下拉加载listview时,当上拉加载后再下拉的时候报角标越界异常。出现问题的原因,上拉的时候会加载一个footview,当下拉刷新的时候会清除集合中的数据再去加载的数据的时候会报这个错误。主要原因是在清除listView的时候adapter没有刷新 出现这个问题只需要在list.clean();后面加上adapter.notifyDataSetChanged();即可解决...
iOS 徽标角标和tabbar角标
UITabBarItem * item=[self.tabBarController.tabBar.items objectAtIndex:0];     // 显示     item.badgeValue=[NSString stringWithFormat:@"1"];     // 去掉角标     item.badgeValue = nil;     // 设置应用程序的角标
数组引用越界,异常处理问题
引用一个数组,不知道数组边界,怎么进行判断,非得要遍历吗?rn怎么引用的数组越界了?
数据库连接报异常,请帮忙看看
连接数据库时,莫名其妙的有时候会报异常:rnrncom.microsoft.sqlserver.jdbc.SQLServerException: 在 DBComms.transmit 操作期间发生异常。异常:Connection reset by peer: socket write error。上下文:(1) [Thread[http8888-Processor18,5,main], IO:801c5, Dbc:c668c]。rn at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)rn at com.microsoft.sqlserver.jdbc.DBComms.transmit(Unknown Source)rnrnrn但服务器重启动后,又好了。但有的时候又会发生。请高手帮帮忙。。。
C++求助。。一直报异常。。求大佬帮忙看看
本人想做一个个人账户信息管理系统,用的是文件的读写去实现功能,整体思路就是我自己想用两个.dat文件一个存用户,另一个存用户信息,第一个文件来实现登录注册(模拟登录注册),第二个文件里面每一个信息里面都有用户名字,方便后面查找每个用户对应信息,现在就是我能实现写入到文件里面,还有读到程序里面进行输出,但是每次都会报一个异常(附图)..自己看了好久都不知道到底是哪里出了问题,希望各位大佬能指点一下迷津。。rn--------------------------------------------------------------------------------------------------------------------------------------------rn代码:rn#includern#includern#includern#includern#includernrnusing namespace std;rnrnstruct User//用户结构体rnrn unsigned int flag;//权值rn string name;//用户名rn string password;//用户密码rn;rnrnstruct User2rnrn string name2;rn string Aname;//用户个人账户名称rn string Apassword;rn;rnrnclass UserAccountrnrnprivate:rnrn// fstream file;//建立用户文件;rn// fstream file2;//建立用户信息薄问文件rnrn string a1;//用作后面获取到登录用户的用户名rnrn ifstream infile;//用作写rn ofstream outfile;//用作读rnrn ifstream infile2;//用作写(表2)rn ofstream outfile2;//用作读(表2)rnrn void Login();rn void Register();rn void AddDate();rn void Show();rn void UpDate();rnrnpublic:rnrn UserAccount();rn// virtual~UserAccount() file.close(); rnrn void Run();//实现登录注册界面rn void Run2();rn;rn//------------------------------------------------------------------------rnUserAccount::UserAccount()//创造用户信息文件rnrn ifstream iFile("UserAccount.dat");rnrn if (iFile.fail())rn rn ofstream oFile("UserAccount.dat");rn if (oFile.fail()) throw("打开文件失败.");rn oFile.close();rn rn elsern rn iFile.close();rn rn// file.open("UserAccount.dat", ios::in | ios::out | ios::binary | ios::app);rn ifstream infile("UserAccount.dat", ios::in | ios::binary | ios::app);rn ofstream outfile("UserAccount.dat", ios::out | ios::binary | ios::app);rn //---------------------------------------------------------------------------------rn ifstream iFile2("UserAccount2.dat");//表2的实例化rn rn if (iFile2.fail())rn rn ofstream oFile2("UserAccount2.dat");rn if (oFile2.fail()) throw("打开文件失败.");rn oFile2.close();rn rn elsern rn iFile2.close();rn rn// file2.open("UserAccount2.dat", ios::in | ios::out | ios::binary | ios::app);rn ifstream infile2("UserAccount2.dat", ios::in | ios::binary | ios::app);rn ofstream outfile2("UserAccount2.dat", ios::out | ios::binary | ios::app);rnrn//------------------------------------------------------------------------------rnvoid UserAccount::Login()//登录界面rnrn User acc;rn User acc1;rn cout << "欢迎使用本系统!" << endl;rn cout << "用户名:";rn cin >> acc.name;rn cout << "密码:";rn cin >> acc.password;rn int flag = 0;rn infile.seekg(0);rn infile.open("UserAccount.dat", ios::in | ios::binary | ios::app);rn infile.read((char*)& acc1, sizeof(User));rn while (!infile.eof())rn rn if (acc.name == acc1.name && acc.password == acc1.password)rn rn flag = 1;rn break;rn rn infile.read((char*)& acc1, sizeof(User));rn rn if (flag)rn rn if (acc1.flag == 10)//权值为10则是管理员;rn rn a1= acc.name;//获取到当前登录的用户名;rn cout << "欢迎您!"<<"尊敬的管理员" <> acc.name;//输入用户名称rn cout << "输入用户密码:";rn cin >> acc.password;//输入用户密码rn if (acc.name == "张鑫益")rn rn acc.flag = 10;//给到最高权值rn rn elsern rn acc.flag = rand() % 10;rn rn infile.seekg(0);rn int fla = 1;//默认没有注册rn infile.open("UserAccount.dat", ios::binary | ios::app);rn infile.read((char*)& acc1, sizeof(User));//进行查找是否有用户名重名rn while (!infile.eof())rn rn if (acc.name == acc1.name)rn rn fla = 0;rn break;rn rn infile.read((char*)& acc1, sizeof(User));//继续查找rn rn if (fla)rn rn cout << "恭喜您!注册成功!" << endl;rn infile.close();rn infile.clear();rn outfile.open("UserAccount.dat",ios::out |ios::binary | ios::app);rn outfile.write((char*)& acc, sizeof(User));rn outfile.close();rn rn Run();rn return ;rn rnrn elsern rn cout << "对不起,该用户名已被注册!请重新输入哦!" << endl;rn infile.close();//重新输入的时候要对流进行刷新rn infile.clear();rn outfile.close();rnrn Register();rn return;rn rnrn//--------------------------------------------------------------------------rnvoid UserAccount::Run()rnrn int select;rn dorn rn cout << "欢迎使用本系统!" << endl;rn cout << "1.登录 2.注册" << endl;rn cout << " 3.退出 " << endl;rn cin >> select;rn while (cin.get() != '\n');rn switch (select)rn rn case 1:rn tryrn rn Login(); rn rn catch (exception e)rn rn cout << "----";rn rn break;rn case 2:rn tryrn rn Register(); rn rn catch (exception e)rn rn cout << "----";rn rn break;rn rn while (select != 3);rn rnrn//--------------------------------------------------------------------------rnvoid UserAccount::AddDate()rnrn User2 aac;rn aac.name2 = a1;rn outfile2.open("UserAccount2.dat", ios::out | ios::binary | ios::app);rn cout << "请输入需要记录的账户名称:";rn cin >> aac.Aname;rn cout << "请输入对应账户的账户密码:";rn cin >> aac.Apassword;rn outfile2.write((char*)& aac, sizeof(User2));rnrn rn outfile2.close();rnrn//---------------------------------------------------------------------------rnrnvoid UserAccount::Show()rnrn User2 aac;rn infile.open("UserAccount2.dat", ios::in | ios::binary | ios::app);rn infile.read((char*)& aac, sizeof(User2));rn while (!infile.eof())rn rn if (aac.name2 == a1)rn rn cout << "账户名称:"<< aac.Aname << " " << "账户密码:"<< aac.Apassword << endl;rn rn infile.read((char*)& aac, sizeof(User2));rn rn infile.clear();rn infile.close();rn rn rnrnrn//---------------------------------------------------------------------------rnvoid UserAccount::Run2()rnrn int selet;rn dorn rn cout << "请选择功能:" << endl;rn cout << "1.增加账户信息" << endl;rn cout << "2.查看账户信息" << endl;rn cout << "3.查询账户信息" << endl;rnrn cin >> selet;rnrn switch (selet)rn rn case 1:rn tryrn rn AddDate();rn catch (exception e)rn rn cout << "----";rn rn break;rn case 2:rn tryrn rn Show();rn rn catch(exception e)rn rn cout << "----";rn rn break;rn rn while (selet != 5);rnrn//-------------------------------------------------------------------------rnint main()rnrn tryrn rn UserAccount a;rn a.Run();rn rn catch (exception err)rn rn cout<<"----";rn rn system("pause");rn return 0;rn[img=https://img-bbs.csdn.net/upload/201906/13/1560418790_593525.png][/img][img=https://img-bbs.csdn.net/upload/201906/13/1560418806_109611.png][/img][img=https://img-bbs.csdn.net/upload/201906/13/1560418867_431613.png][/img]
java 求最大子序列和问题递归求解报越界异常
nn```n /**n * 分治递归求解问题: n * 分为三种情况:n * 1.最大子序列出现在左半边部分 n * 2.最大子序列出现在右半边部分n * 3.最大子序列出现在中间部分,此时取两边的最大子序列的和之和(左边子序列包含最后一个元素,右边子序列包含第一个元素)n * n * @param arrayn * @returnn */n public static int maxSubSum1(int[] array) n return maxSubSumRec(array,0,array.length-1);n nn /**n * 闭区间n */n private static int maxSubSumRec(int[] array, int left, int right) n if(left==right)n return array[left]>0?array[left]:0;n n int center = (left+right)/2;n System.out.println(left+" "+center+" "+right);n int maxLeft = maxSubSumRec(array,left,center); //左侧子串和最大值n n int maxRight = maxSubSumRec(array,center+1,right); //右侧子串和最大值n n //中间部分最大值n int maxLeftFromCenter = 0,maxRightFromCenter = 0;n for(int i=center,currentSum = 0;i>=left;i--)n n currentSum+=array[i];n if(currentSum > maxLeftFromCenter)n maxLeftFromCenter = currentSum;n n for(int i=center+1,currentSum = 0;i<=right;i++)n n currentSum+=array[i];n if(currentSum > maxLeftFromCenter)n maxRightFromCenter = currentSum;n n int maxCenter = maxLeftFromCenter+maxRightFromCenter;n n return Math.max(Math.max(maxLeft, maxCenter),maxRight);n n```n程序运行结果如下:n![图片说明](https://img-ask.csdn.net/upload/201604/06/1459873787_578559.png)
谁能帮忙看看这个为什么报索引越界错误啊??
[code=csharp]protected void Button2_Click(object sender, EventArgs e)rn rn rn int tmp = 0;rn for (int i = 0; i < this.GridView1.Rows.Count; i++)rn rn string id = GridView2.Rows[i].Cells[1].Text;rn string name = GridView2.Rows[i].Cells[2].Text;rn string quantity = GridView2.Rows[i].Cells[3].Text;rn string version = GridView2.Rows[i].Cells[4].Text;rn CheckBox chk = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");rn rn if (chk != null && chk.Checked)rn rn SqlConnection con = new SqlConnection("server=PC-20170424SYGZ\\SQLEXPRESS;database=test;uid=sa;pwd=123");rn string s = "insert into 请购表(ID,名称,请购数量,型号规格) values ('" + id + "','" + name + "','" + quantity + "','" + version + "') where ID = '" + id + "' ";rn con.Open();rn SqlDataAdapter da = new SqlDataAdapter(s, con);rn DataSet ds1 = new DataSet();rn da.Fill(ds1);rn con.Close();rn // check = check + "," + GridView1.Rows[i].Cells[1].Text.ToString();rn tmp++;rn rn rn rnrn if (tmp == 0)rn rnrnrn MessageBox.Show("未选择任何数据");rn Response.Redirect("FinishedProductQuery.aspx");rn rn else rn MessageBox.Show("success");rn rn rn rn [/code]
安卓角标问题
极光社区: 极光推送的角标问题——让人又爱又恨的小红点 https://community.jiguang.cn/t/topic/13924 华为桌面角标介绍: http://developer.huawei.com/consumer/cn/wiki/index.php?title=华为桌面角标介绍
iOS之消息角标
如下图QQ的界面所示,消息标签处红色角标如何实现?它与应用图标外的红色通知角标实现原理相同吗? 外部的角标代码是这样的: [UIApplicationsharedApplication].applicationIconBadgeNumber = 2333; 这个 Tabbar 的角标是这样的: UITabBarItem *item = [[UITabBarItem alloc] initWith
Android 角标适配
角标是从 iOS 那边 copy 过来的一个功能,目前 Android 没有提供系统 API 对此做支持。如果需要适配这个功能需要遵循主流的 Android 手机厂商的适配规范,文章列举的 华为 三星 vivo  HTC 的适配方式。   一 判断机型 if (Build.MANUFACTURER.equalsIgnoreCase(&quot;HUAWEI&quot;)) { // l...
android热门角标
android热门角标控件 /** * 计算路径 x1 x2 * ................................ distance(标签离右上角的垂直距离) * . . . . * . . .. y1 * . . . * . . . * . . y2 height(标签垂直高度) * . . * ................................ */
Android消息角标
前言:android原生系统是不支持角标的,需要厂商自己实现,所以接口需要分别实现。项目需求,目前只在三星和小米上实现了角标功能。没有找到华为和魅族的实现方法。 怎么区分手机类型//小米手机 Build.MANUFACTURER.equalsIgnoreCase("Xiaomi"); //三星手机 Build.MANUFACTURER.toLowerCase().contains("samsung
安卓app角标
就一个困惑,android到底能否实现角标?扣扣是怎么实现的??        思路:大家都知道android系统默认是不支持角标的。但是有时候你又可以在很多系统上看到角标,这些系统包括 小米手机的miui 三星手机的TouchWiz  索尼手机; 这些手机的系统应用都可以显示数字角标。这是应为这些系统进行了定制,使用的是自己的launcher. 所以在这些系统上的实现思路就是使用这些手
iOS推送与角标总结
近期发现一个蛋疼的问题,ios里清程序角标的时候会把通知栏的推送消息也清了。试验了好久得到了一些结论,记录下结果。       推送分为远程推送和本地推送。分开来记录。       在远程推送的协议中,有一个badge字段,这个字段是用来设置程序角标值的。当app处于非运行状态或者在后台时,收到远程推送,app并不会运行任何代码,一切事务都是由系统处理(iOS 7推出的静默推送是特例)
安卓开发之应用角标
目前来说 原生的Android系统,是不支持应用角标的所以各大手机厂商便自己定制Launcher来实现,然后提供接口给外部使用。然而就会出现每个手机品牌厂商的方式各不相同特殊机型适配华为系列   华为角标官方文档 : http://developer.huawei.com/cn/consumer/wiki/index.php?title=%E5%8D%8E%E4%B8%BA%E6%A1%8C%E
IsBadgeWorking_Android_角标提示
IsBadgeWorking Android 角标提示, IsBadgeWorking Android 角标提示
设置APP角标
The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut!
CSS实战 - 角标
使用CSS实现给div的角落加上标注,实现角标效果。 角标是一个给某元素进行标注说明以示强调的元素,常用图片实现,下面就利用CSS实现了图片的角标效果
角标选择排序
public class Demo{ public static void main(String[] args) { int[] arr = {55 ,45, 86, 17, 23}; for(int i = 0;i { int minIndex = i; for(int j = i +1; j { if(arr[minIndex] > arr[j]) { mi
android系统角标显示
今天有个需求,在用环信推送的同时,系统应用的角标要和环信未读消息一样。可是环信推送的时候只是推送一条推送,在推送内容里显示消息数目,这样在小米这种手机上就固定显示推送的1条消息,无奈之下只好对系统应用进行手动代码添加。 在网上找了一些资料,发现,首先并不是所有机型都可以接到消息数目,并显示到手机应用角标的。goole原生的android系统是并不支持通过接受未读消息数目显示在手机应用角标上的,但
设置文本角标
引入GitHub项目compile 'q.rorbin:badgeview:1.1.3'//数字提示设置到TextView上 /** * 设置订单角标 */ private void initBage(){ if(listData!=null &amp;amp;&amp;amp; listData.size() &amp;gt; 0 ){ setBadg...
安卓应用角标
什么是应用角标?    应用角标最开始是在ios系统中出现的,大概长这样:     不知道从什么时候开始,国内各大安卓手机系统上,也慢慢出现了应用角标的身影,到现在几乎成为了安卓系统的标配,发张图片让大家近距离感受一下:     但是有一点要特别提一下,那就是原生的Android系统,是不支持应用角标的(这也是文章标题叫“安卓角标”而不是“Android角标”的原因)。毕竟应用角标是一个带
android 角标
这是一个实现andorid角标的demo,非常实用.希望可以帮助到大家
BadgerView数字角标
该自定义view支持对多个视图控件添加角标,集成简单方便
去除快捷方式角标
去除快捷方式角标去除快捷方式角标去除快捷方式角标去除快捷方式角标去除快捷方式角标去除快捷方式角标
苹果角标途径
修改iPhone角标途径、可以让你清楚的找到苹果修改角标的途径。美化你的苹果手机
z_消息角标
消息角标
BadgeView---角标
作为收藏,BadgeView---角标,给View添加各种角标。
角标系统设计思路
游戏红点系统设计思路,通过枚举 绑定对应的函数 . 函数内为 各类系统角标显示条件判断 刷新对应枚举角标数量 然后通过 全局消息 管理器 进行对该枚举类型的广播 触发红点显示
报异常求解释!
[code=java]public class CeShirn public static void main(String[] args)rn String a = "java";rn int count = 0;rn int index = -1;rn String str = "sunjavahpjavaokjavajavaandjavahahajavagoodjava";rn /*String str = "sunjavahpjavaokjavajavahahajavagoodjava";rn 在字符串中多加了一个javaand就报异常,如果不加and就不会报错*/rn System.out.println(str.indexOf(a));rn rn while((index = str.indexOf(a))!= -1)rn str = str.substring(index+str.indexOf(a));rn count++;rn rn System.out.println(count);rn rn[/code]rnrn查找了大量资料都没有弄懂,求大神指点一下,本人自学不容易啊!
java学习笔记day05-数组索引越界异常
数组的索引编号从0开始,一直到“数组的长度-1”为止。 如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常。 ArrayIndexOutOfBoundsException 原因:索引编号写错了。 解决:修改成存在的正确索引编号。 —————————————————————————————————— 所有的引用类型变量,都可以赋值为一个null值。但是代表其中什么都没有。 数组必...
修改APP 角标 和内置tabbar角标
//    设置APP角标   授权用户APP角标IOS8以后需要用户授权     UIUserNotificationSettings *setting =[UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge  categories:nil];     [[UIApplication sharedApp
怎样避免和减少数组空指针和越界异常?
避免数组空指针的办法如下: 1.变量先初始化,在使用 2.使用对象时,先判断再使用,if(对象 != null) 3.如String str = null; str.spilt(); 就会报空指针 4.对象中的所有属性都会自动添加默认值 IndexOutOfBoundsException(数组越界异常) 可以说是Java代码中最常见的异常之一,还有一个是NullPointerException(空...
数组下越界
Microsoft VBScript 运行时错误 错误 '800a0009'rnrn下标越界: 'Rand(...)'rnrn/admin_code.asp,行 76rn 出现这个问题,程序的代码为rnTitle1 = Titleline(Rand(0,ubound(Titleline)))rn这个问题这么解决?看到别人是说直接用一个判断如何做?rn我和奇怪的是,我本地的2003运行没有出现这个问题,但是在网站上运行就出现了这个问题。rn我试了我两个站。rn 一个可以正常,一个不正常,求解。
eventbus发送消息刷新上一页listview 消息接收不到及返回上一页时数组角标越界
Android开发已第二个年头,此前从未有做笔记的习惯,想想甚是不对,知识再易亦是知识,问题再简亦是问题,而往往越简单越容易遗忘,他日再遇虽谷歌百度终能化解,但怎敌相逢一笑识故人,好记性不如烂笔头,愿从今起力所能及多写多记!
Java基础-03.数组的定义-初始化-越界异常-Null异常
本套Java视频无论是您有经验还是初级,都可以学到更多更多东西,课堂实录,自发布以来,好评如潮!徐培成的Java视频中注重与学生互动,讲授幽默诙谐、细致入微,覆盖Java基础所有核心知识点, 同类Java视频中也是代码量大、案例多、实战性强的。同时,本Java视频教程注重技术原理剖析,深入JDK源码,用实践驱动理论。
ArrayList.add()时报越界异常
今天遇到几个很诧异的越界异常:rnList cmds = TerminalMaps.terminal_commands.get(mac);rnif (cmds == null)rncmds = new ArrayList(); rnrnrnStringBuffer command = new StringBuffer();rncommand.append(Constant.CMD_START).append("register_response").append(Constant.CMD_ITEM_TOKENIAER).append("ok");rnrncmds.add(command.toString()); //在这一行报了个java.lang.ArrayIndexOutOfBoundsException: -1rnrn还有一个remove时越界异常:rnwhile (cmdList.size() > 0)rnString cmd = cmdList.remove(0); //这儿也报越界异常rnrnrn这两个越界异常的诡异极了, 而且很难重现.当我以为只是幻觉的时候, 他又时不时蹦出来恶心我一把.rnrn请大家指教.
帮忙看看jdbc的异常。
法律咨询 2012-2-14 8:56:00rn经济案件 2012-2-14 8:56:00rn山西路上交通事故的赔偿 2012-2-14 8:55:00rn收送养孩子 2012-2-14 8:54:00rn房产问题 2012-2-14 8:53:00rn交通事故责赔偿标准 2012-2-14 8:53:00rncom.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver.rn at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1012)rn at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)rn at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)rn at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)rn at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1204)rn at com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3165)rn at com.mysql.jdbc.ConnectionImpl.rollback(ConnectionImpl.java:4783)rn at dao.MessageDaoImpl.insertAll(MessageDaoImpl.java:68)rn at ReadFile.SaveIntoDataBase.saveAll(SaveIntoDataBase.java:13)rn at ReadFile.ReadFile.main(ReadFile.java:144)rnCaused by: com.mysql.jdbc.CommunicationsException: Communications link failurernrnThe last packet successfully received from the server was 5,015 milliseconds ago. The last packet sent successfully to the server was 5,015 milliseconds ago.rn at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)rn at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3056)rn at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2942)rn at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3485)rn at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)rn at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)rn at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2690)rn at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1654)rn at dao.MessageDaoImpl.insertAll(MessageDaoImpl.java:66)rn ... 2 morernCaused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.rn at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2503)rn at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2953)rn ... 9 morern上面的文字是我控制体打印出来的数据这个说明正确的插入到了数据库了。如果不出问题就该一直打印信息rn可是为什么 运行着运行着就突然报了这个错误啊!rn求高手指点 !!!!rn
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制