小编A.P*_*P.S的帖子

Java OutOfMemoryError在读取大文本文件时

我是Java的新手,正在阅读非常大的文件,需要一些帮助来理解问题并解决它.我们有一些遗留代码必须进行优化才能使其正常运行.文件大小只能从10mb到10gb不等.只有文件启动超过800mb大小时才会启动麻烦.

InputStream inFileReader = channelSFtp.get(path); // file reading from ssh.
byte[] localbuffer = new byte[2048];
ByteArrayOutputStream bArrStream = new ByteArrayOutputStream();

int i = 0;
while (-1 != (i = inFileReader.read(buffer))) {
bArrStream.write(localbuffer, 0, i);
}

byte[] data = bArrStream.toByteArray();
inFileReader.close();
bos.close();
Run Code Online (Sandbox Code Playgroud)

我们收到了错误

java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2271)
    at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:113)
    at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
    at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:140)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激?

java arrays file-io bytearray out-of-memory

17
推荐指数
5
解决办法
8233
查看次数

使用参数在expression.call中调用静态方法

我已经为Contains方法扩展了字符串类.我试着把它调用Expression.Call,但是如何正确地传递参数?

代码:String包含方法:

public static class StringExts
{
    public static bool NewContains(this string source, string ValToCheck, StringComparison StrComp)
    {
        return source.IndexOf(ValToCheck, StrComp) >= 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

在表达式中调用为:

public class Person { public string Name {get; set;} }

public class Persons { 
    public List<Person> lstPersons {get; set;} 
    public Persons() {
      lstPersons = new List<Person>();    
    }
}

public class Filter 
{
    public string Id { get; set; }
    public Operator Operator { get; set; }
    public string value { …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda delegates expression-trees

9
推荐指数
1
解决办法
7444
查看次数

计算MySQL中的总持续时间

我有这样的表数据

(int)   (time)  [mySQL datatype]

Id     Duration 
------------------
1      00:10:00
2      10:10:00
3      03:00:00
4      04:13:00
Run Code Online (Sandbox Code Playgroud)

我想从这张表中计算总持续时间,我们该怎么做.喜欢17:33:00 有人可以提供mysql查询来计算这个.

mysql sql

8
推荐指数
1
解决办法
8228
查看次数

如何在网站上绘制矩形以突出显示?

有没有办法实现Google反馈功能,如此处所示?我们可以使用CSS使网站略微变黑,但是如何在特定界面上绘制矩形,如突出显示某些文本或错误.我们可以使用像精灵牛一样的概念,用于突出特定图像链接上的矩形.任何想法和来源都受到欢迎.

谢谢

javascript php html5 css3

7
推荐指数
2
解决办法
2296
查看次数

使用JSON.NET进行序列化时隐藏C#属性

我们如何隐藏使用JSON.NET库进行序列化的C#属性.假设我们有班级客户

public class Customer
{
   public int CustId {get; set;}
   public string FirstName {get; set;}
   public string LastName {get; set;}
   public bool isLocked {get; set;}
   public Customer() {}

}

public class Test
{
  Customer cust = new Customer();
  cust.CustId = 101;
  cust.FirstName = "John"
  cust.LastName = "Murphy"

  string Json = JsonConvert.SerializeObject(cust); 
}
Run Code Online (Sandbox Code Playgroud)

JSON

{
"CustId":101,
"FirstName":"John",
"LastName":"Murphy",
"isLocked":false}

此对象转换为json,但我没有指定isLocked属性.由于库将序列化整个类,有没有办法在json序列化过程中忽略属性或者我们可以在属性上添加任何属性.

编辑:另外,如果我们在数组中创建两个Customer类实例.如果我们没有指定第二个实例上的锁定属性,我们可以将属性隐藏为第二个对象.

JSON

{"Customer":[{"CustId":101,"FirstName":"John","LastName":"Murphy","isLocked":false},{"CustId":102,"FirstName":"Sara" ,"LastName":"connie"}]}

谢谢

c# serialization properties json.net visual-studio

7
推荐指数
2
解决办法
1万
查看次数

C#中的数据分区

我想将大量数据分发到不同的C#应用​​程序.例如,我的表包含数百万条记录.我想指定App1处理前3百万条记录,另外C#应用程序App2处理300万条,依此类推.表行将根据要求删除并添加.现在我想写一个SQL查询,它将处理前300万条记录.现在,如果从app1中删除了5条记录,则app1必须从app3获取接下来的5条记录,从app3获取app2.因此,每个应用程序中的数据始终保持不变.

我在SQL查询中使用了限制,但是我没有得到所需的输出.如何为此编写SQL查询以及如何设计C#应用程序.

.net c# mysql sql

5
推荐指数
1
解决办法
1054
查看次数

C#静态垃圾收集器?

我有一个简单的类,它有一个静态构造函数和一个实例构造函数.现在,当我初始化类时,调用静态和实例构造函数.在应用程序域中只引用一次静态.我可以再次调用相同的类初始化和静态构造函数再次初始化吗?我试过但它没有发生?有没有什么办法可以在类上使用垃圾收集后在main()方法中再次调用静态构造函数.

这是代码:

public class Employee
{
    public Employee()
    {
        Console.WriteLine("Instance constructor called");   
    }

    static Employee()
    {
        Console.WriteLine("Static constructor called");   
    }

    ~Employee()
     {
        //Dispose();
     }
}
Run Code Online (Sandbox Code Playgroud)

现在在main方法调用中:

static void Main(string[] args)
{
    Employee emp = new Employee();
    Employee emp = new Employee();
}
Run Code Online (Sandbox Code Playgroud)

输出:

名为Instance构造函数的静态构造函数称为Instance构造函数

现在静态没有再次调用.因为它在应用程序域中被调用一次.但他们是否可以在不卸载应用程序域的情况下再次调用它.我们可以在这里使用GC类吗?

谢谢.朋友

.net c# constructor garbage-collection static-constructor

4
推荐指数
1
解决办法
927
查看次数

隐藏派生类方法?

我们可以隐藏派生类的公共方法,以便在C#中的Main()函数中无法访问它.我们无法更改派生类方法的访问器.

public class A
{
    public void Add()
    {
    }    
}       

public class B : A 
{
    public void Multiply()
    {
    }        
}
Run Code Online (Sandbox Code Playgroud)

在C#的main()方法中

B b = new B();
b.mulitply(); // should give compile time error... Like method not founded.
Run Code Online (Sandbox Code Playgroud)

我们有什么方法可以做到.

c# inheritance language-features

0
推荐指数
1
解决办法
301
查看次数