为您找到与Java写入文件内存溢出相关的共200个结果:
java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件怎么办?别怕,下面就由读文网小编为大家整理的解决办法,供大家参考!
1、传统的在内存中读取
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:
1 2 3 | Files.readLines( new File(path), Charsets.UTF_8); FileUtils.readLines( new File(path)); |
这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMemoryError 异常。
例如:读取一个大约1G的文件:
1 2 3 4 5 | @Test public void givenUsingGuava_whenIteratingAFile_thenWorks() throws IOException { String path = ... Files.readLines( new File(path), Charsets.UTF_8); } |
这种方式开始时只占用很少的内存:(大约消耗了0Mb内存)
1 2 | [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Total Memory: 128 Mb [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Free Memory: 116 Mb |
然而,当文件全部读到内存中后,我们最后可以看到(大约消耗了2GB内存):
1 2 | [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Total Memory: 2666 Mb [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Free Memory: 490 Mb |
这意味这一过程大约耗费了2.1GB的内存——原因很简单:现在文件的所有行都被存储在内存中。
把文件所有的内容都放在内存中很快会耗尽可用内存——不论实际可用内存有多大,这点是显而易见的。
此外,我们通常不需要把文件的所有行一次性地放入内存中——相反,我们只需要遍历文件的每一行,然后做相应的处理,处理完之后把它扔掉。所以,这正是我们将要做的——通过行迭代,而不是把所有行都放在内存中。
2、文件流
现在让我们看下这种解决方案——我们将使用java.util.Scanner类扫描文件的内容,一行一行连续地读取:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | FileInputStream inputStream = null ; Scanner sc = null ; try { inputStream = new FileInputStream(path); sc = new Scanner(inputStream, UTF-8 ); while (sc.hasNextLine()) { String line = sc.nextLine(); // System.out.println(line); } // note that Scanner suppresses exceptions if (sc.ioException() != null ) { throw sc.ioException(); } } finally { if (inputStream != null ) { inputStream.close(); } if (sc != null ) { sc.close(); } } |
这种方案将会遍历文件中的所有行——允许对每一行进行处理,而不保持对它的引用。总之没有把它们存放在内存中:(大约消耗了150MB内存)
1 2 | [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Total Memory: 763 Mb [main] INFO org.baeldung.java.CoreJavaIoUnitTest - Free Memory: 605 Mb |
3、Apache Commons IO流
同样也可以使用Commons IO库实现,利用该库提供的自定义LineIterator:
1 2 3 4 5 6 7 8 9 | LineIterator it = FileUtils.lineIterator(theFile, UTF-8 ); try { while (it.hasNext()) { String line = it.nextLine(); // do something with line } } finally { LineIterator.closeQuietly(it); } |
由于整个文件不是全部存放在内存中,这也就导致相当保守的内存消耗:(大约消耗了150MB内存)
1 2 | [main] INFO o.b.java.CoreJavaIoIntegrationTest - Total Memory: 752 Mb [main] INFO o.b.java.CoreJavaIoIntegrationTest - Free Memory: 564 Mb |
4、结论
这篇短文介绍了如何在不重复读取与不耗尽内存的情况下处理大文件——这为大文件的处理提供了一个有用的解决办法。
浏览量:2
下载量:0
时间:
内存溢出与数据库锁表的问题,可以说是开发人员的噩梦,一般的程序异常,总是可以知道在什么时候或是在什么操作步骤上出现了异常,而且根据堆栈信息也很容易定位到程序中是某处出现了问题。内存溢出与锁表则不然,一般现象是操作一般时间后系统越来越慢,直到死机,但并不能明确是在什么操作上出现的,发生的时间点也没有规律,查看日志或查看数据库也不能定位出问题的代码。下面就由读文网小编为大家整理的溢出问题解决方法,供大家参考!
内存溢出虽然很棘手,但也有相应的解决办法,可以按照从易到难,一步步的解决。
第一步,就是修改JVM启动参数,直接增加内存。这一点看上去似乎很简单,但很容易被忽略。JVM默认可以使用的内存为64M,Tomcat默认可以使用的内存为128MB,对于稍复杂一点的系统就会不够用。在某项目中,就因为启动参数使用的默认值,经常报“OutOfMemory”错误。因此,-Xms,-Xmx参数一定不要忘记加。
第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。在一个项目中,使用两个数据库连接,其中专用于发送短信的数据库连接使用DBCP连接池管理,用户为不将短信发出,有意将数据库连接用户名改错,使得日志中有许多数据库连接异常的日志,一段时间后,就出现“OutOfMemory”错误。经分析,这是由于DBCP连接池BUG引起的,数据库连接不上后,没有将连接释放,最终使得DBCP报“OutOfMemory”错误。经过修改正确数据库连接参数后,就没有再出现内存溢出的错误。
查看日志对于分析内存溢出是非常重要的,通过仔细查看日志,分析内存溢出前做过哪些操作,可以大致定位有问题的模块。
第三步,安排有经验的编程人员对代码进行走查和分析,找出可能发生内存溢出的位置。重点排查以下几点:
l 检查代码中是否有死循环或递归调用。
l 检查是否有大循环重复产生新对象实体。
l 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
l 检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
第四步,使用内存查看工具动态查看内存使用情况。某个项目上线后,每次系统启动两天后,就会出现内存溢出的错误。这种情况一般是代码中出现了缓慢的内存泄漏,用上面三个步骤解决不了,这就需要使用内存查看工具了。
内存查看工具有许多,比较有名的有:Optimizeit Profiler、JProbe Profiler、JinSight和Java1.5的Jconsole等。它们的基本工作原理大同小异,都是监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。开发人员可以根据这些信息判断程序是否有内存泄漏问题。一般来说,一个正常的系统在其启动完成后其内存的占用量是基本稳定的,而不应该是无限制的增长的。持续地观察系统运行时使用的内存的大小,可以看到在内存使用监控窗口中是基本规则的锯齿形的图线,如果内存的大小持续地增长,则说明系统存在内存泄漏问题。通过间隔一段时间取一次内存快照,然后对内存快照中对象的使用与引用等信息进行比对与分析,可以找出是哪个类的对象在泄漏。
通过以上四个步骤的分析与处理,基本能处理内存溢出的问题。当然,在这些过程中也需要相当的经验与敏感度,需要在实际的开发与调试过程中不断积累。
浏览量:2
下载量:0
时间:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。下面是读文网小编带来的关于java 内存溢出怎么解决的内容,欢迎阅读!
一、内存溢出类型
1、java.lang.OutOfMemoryError: PermGen space
JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。
一个最佳的配置例子:(经过本人验证,自从用此配置之后,再未出现过tomcat死掉的情况)
set JAVA_OPTS=-Xms800m -Xmx800m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2、java.lang.OutOfMemoryError: Javaheap space
第一种情况是个补充,主要存在问题就是出现在这个情况中。其默认空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。如果内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值。所以服务器的Xmx和Xms设置一般应该设置相同避免每次GC后都要调整虚拟机堆的大小。假设物理内存无限大,那么JVM内存的最大值跟操作系统有关,一般32位机是1.5g到3g之间,而64位的就不会有限制了。
注意:如果Xms超过了Xmx值,或者堆最大值和非堆最大值的总和超过了物理内存或者操作系统的最大限制都会引起服务器启动不起来。
垃圾回收GC的角色
JVM调用GC的频度还是很高的,主要两种情况下进行垃圾回收:
当应用程序线程空闲;另一个是java内存堆不足时,会不断调用GC,若连续回收都解决不了内存堆不足的问题时,就会报out of memory错误。因为这个异常根据系统运行环境决定,所以无法预期它何时出现。
根据GC的机制,程序的运行会引起系统运行环境的变化,增加GC的触发机会。
为了避免这些问题,程序的设计和编写就应避免垃圾对象的内存占用和GC的开销。显示调用System.GC()只能建议JVM需要在内存中对垃圾对象进行回收,但不是必须马上回收。
一个是并不能解决内存资源耗空的局面,另外也会增加GC的消耗。
二、JVM内存区域组成
简单的说java中的堆和栈
java把内存分两种:一种是栈内存,另一种是堆内存
1。在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;
2。堆内存用来存放由new创建的对象和数组
在函数(代码块)中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间;在堆中分配的内存由java虚拟机的自动垃圾回收器来管理
堆的优势是可以动态分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的。缺点就是要在运行时动态分配内存,存取速度较慢;
栈的优势是存取速度比堆要快,缺点是存在栈中的数据大小与生存期必须是确定的无灵活性。
java堆分为三个区:New、Old和Permanent
GC有两个线程:
新创建的对象被分配到New区,当该区被填满时会被GC辅助线程移到Old区,当Old区也填满了会触发GC主线程遍历堆内存里的所有对象。Old区的大小等于Xmx减去-Xmn
java栈存放
栈调整:参数有+UseDefaultStackSize -Xss256K,表示每个线程可申请256k的栈空间
每个线程都有他自己的Stack
三、JVM如何设置虚拟内存
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
提示:JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
提示:假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。
简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,
这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了
提示:注意:如果Xms超过了Xmx值,或者堆最大值和非堆最大值的总和超过了物理内存或者操作系统的最大限制都会引起服务器启动不起来。
提示:设置NewSize、MaxNewSize相等,"new"的大小最好不要大于"old"的一半,原因是old区如果不够大会频繁的触发"主" GC ,大大降低了性能
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;
由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.bat
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
四、性能检查工具使用
定位内存泄漏:
JProfiler工具主要用于检查和跟踪系统(限于Java开发的)的性能。JProfiler可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视JVM运行情况及其性能。
1. 应用服务器内存长期不合理占用,内存经常处于高位占用,很难回收到低位;
2. 应用服务器极为不稳定,几乎每两天重新启动一次,有时甚至每天重新启动一次;
3. 应用服务器经常做Full GC(Garbage Collection),而且时间很长,大约需要30-40秒,应用服务器在做Full GC的时候是不响应客户的交易请求的,非常影响系统性能。
因为开发环境和产品环境会有不同,导致该问题发生有时会在产品环境中发生,通常可以使用工具跟踪系统的内存使用情况,在有些个别情况下或许某个时刻确实是使用了大量内存导致out of memory,这时应继续跟踪看接下来是否会有下降,
如果一直居高不下这肯定就因为程序的原因导致内存泄漏。
五、不健壮代码的特征及解决办法
1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。
对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;
2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域;
String str = "aaa";
String str2 = "bbb";
String str3 = str + str2;//假如执行此次之后str ,str2以后再不被调用,那它就会被放在内存中等待Java的gc去回收,程序内过多的出现这样的情况就会报上面的那个错误,建议在使用字符串时能使用StringBuffer就不要用String,这样可以省不少开销;
3、尽量少用静态变量,因为静态变量是全局的,GC不会回收的;
4、避免集中创建对象尤其是大对象,JVM会突然需要大量内存,这时必然会触发GC优化系统内存环境;显示的声明数组空间,而且申请数量还极大。
这是一个案例想定供大家警戒
使用jspsmartUpload作文件上传,运行过程中经常出现java.outofMemoryError的错误,
检查之后发现问题:组件里的代码
m_totalBytes = m_request.getContentLength();
m_binArray = new byte[m_totalBytes];
问题原因是totalBytes这个变量得到的数极大,导致该数组分配了很多内存空间,而且该数组不能及时释放。解决办法只能换一种更合适的办法,至少是不会引发outofMemoryError的方式解决。参考:http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747
5、尽量运用对象池技术以提高系统性能;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。
6、不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃
7、一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成 Out Of Memory Error 的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。
浏览量:2
下载量:0
时间:
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。下面是读文网小编带来的关于java内存溢出如何产生的内容,欢迎阅读!
java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:
其中方法区和堆是由所有线程共享的数据区。
Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。
Java官方定义: http://www.98ki.com/servlet/HomeServlet?method=get&id=53
Java各内存区域分析: http://www.98ki.com/servlet/HomeServlet?method=get&id=43
通过分析各个区域的内容我们分别写出各个区域的内存溢出实例
堆溢出
由Java的官方文档我们可以看出,Java堆中存放:对象、数组。下面以不断创建对象为例:
Exception in thread "main"java.lang.OutOfMemoryError: Java heap space
public class HeapLeak {
public static void main(String[] args){
ArrayList list = new ArrayList ();
while ( true ){
list.add( new HeapLeak.method()) ;
}
}
static class method{
}
}
栈溢出
从Java官方API中我们知道,栈中存储:基本数据类型,对象引用,方法等。下面以无限递归创建方法和申请栈空间为例,分别演示栈的stackOverflow和OutOfMemory
l Exception in thread "main" java.lang.StackOverflowError
package Memory;
public class StackLeak {
public static void main(String[] args){
method ();
}
public static void method (){
method ();
}
}
l Exception in thread "main"java.lang.OutOfMemoryError: unable to create new native thread
package Memory;
public class StackOutOfMemory {
public static int count = 1;
public void noStop() {
while ( true ) {
}
}
public void newThread() {
while ( true ) {
Thread t = new Thread( new Runnable() {
public void run() {
System. out .println( " 已创建第 " + count +++ " 个线程 " );
noStop();
}
});
t.start();
}
}
public static void main(String[] args){
new StackOutOfMemory().newThread();
}
}
Java hotspot虚拟机中一个线程占用内存可通过-Xss设置,而能创建的线程数计算方法为:
可创建线程数=(物理内存-Os预留内存-堆内存-方法区内存)/单个线程大小
在测试的时候这里还有点小插曲,电脑强关了一次,因为把-Xss设置成了2M,内存使用增加到97%左右,操作系统死了,这个进程不断在创建线程,但是并没有因为内存不足而停下来,直到电脑完全死掉也没有报出错误信息。最后分析是因为电脑空闲内存还有600M,在线程还没有创建完的时候,已经开启的线程太多,在死之前大概能开到200多个,对内存大量消耗,造成系统挂掉。
这里又出现一个有趣的现象,当线程顺序创建到第88个的时候,count跳了很多,并且开始无序,有兴趣的可以深入学习一下线程方面的问题,我也会在后面的博客分析这个问题。
而换成200M的时候,创建第二个线程的时候就报了OutOfMemory.不管Xss设置多少,报错之后,程序都会一直走下去,执行已开线程中的任务。
常量池溢出
从Java官方API中我们知道,常量区代表运行时每个class文件中的常量表。它包括几种常量:编译期的数字常量、方法或者域的引用(在运行时解析)。runtime constant pool的功能类似于传统编程语言的符号表,尽管它包含的数据比典型的符号表要丰富的多。
下面以不断添加Stirng为例:
Exception in thread "main"java.lang.OutOfMemoryError: PermGen space
常量池在方法区中,首先设置持久代大小,使其不可扩展。
然后需要做的就不停地往方法区中加字符串。其中intern()就是查看方法区中有没有这个字符串,没有的话就加进去,如果这里不用intern(),字符串是存在堆里的,会报heapOutOfMemory.
这里需要注意的是,在 HotSpot 中,方法区是在堆的持久代中的。
package Memory;
import java.util.ArrayList;
public class ConstantPoolLeak {
public static void main(String[] args) {
int count = 0;
ArrayList list = new ArrayList ();
while ( true )
list.add(String. valueOf (count++).intern()) ;
}
}
方法区溢出
从Java官方API中我们知道,方法区存放每个Class的结构,比如说运行时常量池、域、方法数据、方法体、构造函数、包括类中的专用方法、实例初始化、接口初始化。
Java的反射和动态代理可以动态产生Class,另外第三方的CGLIB可以直接操作字节码,也可以动态产生Class,下面通过CGLIB来演示。
import java.lang.reflect.Method;
public class MethodAreaLeak {
public static void main(String[] args){
while ( true ){
Enhancer enhancer = new Enhancer ();
enhancer.setSuperClass(OOMObject. class );
enhancer.setUseCache( false );
enhancer.setCallback( new MethodInterceptor (){
public Object intercept(Object obj, Method method,Object[] args,
MethodProxy proxy) throws Throwable{
return proxy.invokeSuper(obj, args);
}
});
enhancer.create();
}
}
class OOMObject{
}
}
本机直接内存溢出
Java虚拟机可以通过参数-XX:MaxDirectMemorySize设定本机直接内存可用大小,如果不指定,则默认与java堆内存大小相同。JDK中可以通过反射获取Unsafe类(Unsafe的getUnsafe()方法只有启动类加载器Bootstrap才能返回实例)直接操作本机直接内存。通过使用-XX:MaxDirectMemorySize=10M,限制最大可使用的本机直接内存大小为10MB,例子代码如下
package Memory;
import java.lang.reflect.Field;
public class DirectMemoryOOM {
private static final int _1MB = 1024 * 1024 * 1024;
public static void main(String[] args) throws Exception {
Field unsafeField = Unsafe . class .getDeclaredFields()[0];
unsafeField.setAccessible( true );
Unsafe unsafe = ( Unsafe ) unsafeField.get( null );
while ( true ) {
// unsafe 直接想操作系统申请内存
unsafe.allocateMemory( _1MB );
}
}
}
相关阅读推荐:
浏览量:2
下载量:0
时间:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。下面是读文网小编带来的关于java项目内存溢出怎么解决的内容,欢迎阅读!
原因 :内存容易溢出可以说是因为在程序中有内存泄漏(memory leak)的问题,容易引起内存溢出的直接原因可以归结为代码质量问题,在内存中存在大量的对象,垃圾回收器不能回收,随着程序的不断运行,程序会创造更多的对象,这些对象之间存在一定的内联关系,所以不容易造成被java垃圾回收器回收。
以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。
一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128M"
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
二、java.lang.OutOfMemoryError: Java heap space
#p#副标题#e#
浏览量:2
下载量:0
时间:
在有些时候我们的内存卡不能删除文件,这该怎么办呢?下面就由读文网小编来为你们简单的介绍内存卡不能删除文件的解决方法吧!
对于删不掉的文件,主要可用的是两个工具,一是冰刃,一是Unlocker,任你有什么样的删不了的文件,用这两个工具没有删不了的,这个不行就用另一个,
两个中必有一个能解决问题.下载冰刃后,双击IceSword.exe.在主界面中点文件,找到你要删除的文件,右键强制删除就是了
下载Unlocker后先安装,然后找到你要删除的文件,右击,点Unlocker.选择删除后点确定就是了.或者搞个文件粉碎的东西,直接粉碎。360安全卫士里面就有,功能大全-文件粉碎机
打开DiskGenius软件,找到自己的内存卡所在盘,打开内存卡文件并全选,单击右键选择“强力删除”。
在弹出的“DiskGenius”对话框中选择“删除”按钮,如图所示。
此时出现“彻底删除文件”对话框,需要等一段时间。
现在可以看到内存卡里面的文件已经没有了,如图所示。
看过"内存卡不能删除文件怎么办"
浏览量:2
下载量:0
时间:
想知道电脑中虚拟内存的文件在哪里吗?下面是读文网小编带来的关于win7虚拟内存文件在哪里的内容,欢迎阅读!
系统默认的虚拟内存是在C盘上的,这样不太好,我们可以将虚拟内存设置在非系统的分区上!如何设置呢?我们把自动管理所有驱动器的分页文件大小前面的对勾取消,然后选择C盘,选择无分页文件,然后点击设置!
接下来我们把虚拟内存放在其它磁盘上,我们可以选择D盘,然后选择系统管理的大小,确定!这样我们就把虚拟内存更改到D盘上了!我们这里让系统自动分配虚拟内存的大小!
浏览量:2
下载量:0
时间:
在有些时候我们的内存卡删不掉文件,这该怎么办呢?下面就由读文网小编来为你们介绍一下内存卡删不掉文件的解决方法吧!希望能帮到你们哦!
方法 1: 在Windows系统下进行格式化
将SD卡连接到计算机。如果你的计算机有SD卡插槽,你可以直接将SD卡插进插槽。如果你使用的是MicroSD卡,你需要适配器才能够将MicroSD卡插入到标准SD卡插槽。
如果你的计算机没有内置的SD插槽,你可以将外置USB读卡器连接到计算机,然后使用读卡器读取SD卡内容。
你可以将手机或数码相机等移动设备连接到计算机(一般也是通过USB接口)。你可以将SD卡安装在移动设备中,将移动设备作为临时的读卡器。
打开计算机窗口。点击开始或键盘Windows键后,选择计算机(Windows Vista/7)或者我的电脑(Windows XP)。对于Windows 8的用户,输入“计算机”,然后在应用程序搜索结果中点击计算机图标。
找到你的SD卡。你的SD卡所在的可移动驱动器会显示在"有可移动存储的设备"列表中,如果你刚刚将卡连接上计算机,那么SD将会显示在列表最后。打开SD卡确定是你希望进行格式化的。回到计算机窗口。
打开格式化工具。鼠标右击SD卡,然后在弹出菜单中选择"格式化"。这将打开格式化窗口。保持“容量”和“分配单元大小”的默认选项。
选择文件系统。该选项决定文件在卡上存储的方式。不同系统使用不同的文件结构。为了让所有设备能够读取SD卡内容,选择FAT32作为文件系统。这样照相机、手机、打印机、Windows、Mac和Linuxe计算机等都能够读取卡中的数据。
快速格式化:选中该选项将快速格式化SD卡,在格式化过程中不检查卡的物理错误。如果第一次格式化卡或者不确定卡是否完好,你不应该选中该选项。
6选择选项后点击开始。当弹出窗口要你确认操作时点击确定按钮。随后,SD卡将会被格式化,你将得到一张空白的存储卡,你可以将它插入任何支持SD卡的设备中使用。
方法 2: 在Mac OS X系统下进行格式化
1在内置SD卡插槽或USB读卡器中插入SD卡。如果你使用的是MicroSD卡,你需要适配器才能够将MicroSD卡插入到标准SD卡插槽。
SD卡插入后会自动被系统装载。
2打开磁盘工具。你可以在程序的工具文件夹中找到磁盘工具应用程序。在左边窗体的磁盘列表中选择SD卡。
删除SD卡中的数据。选中SD卡后,在主窗口中选择删除选项卡。在卷格式下拉菜单中选择FAT32,然后在名称栏输入SD卡的名称。当你准备进行格式化时,点击删除…。磁盘工具会让你确认选择。
格式化SD卡将删除其中所有的数据。因此请确认在格式化之前将所有重要文件备份。
在电脑上格式化内存卡的方法就这样了,我们再来看看在安卓手机中怎么格式化内存卡
在安卓系统下进行格式化
插入MicroSD卡。手机的MicroSD卡插槽一般位于电池背后。你需要打开后盖,取下电池才能够使用插槽。MicroSD卡应该可以滑入插槽并由卡口固定。不要强行推入MicroSD卡。
平板电脑的SD卡读卡器一般位于侧面。你可以查阅产品说明书找到确切的位置。
打开设备的存储设置。在插入SD卡后,在主屏幕轻按菜单按钮打开设置,或者在App程序列表中打开设置App。在设备标题行下的设置菜单中选择存储。
卸载SD卡。轻按"卸载SD卡"选项。
格式化SD卡。在存储子菜单中,滚动到SD卡部分。轻按"格式化SD卡"开始格式化操作。再次轻按按钮继续。如果你的SD卡被锁定,你需要输入SD卡PIN序号。输入完毕后,格式化操作会开始。
所有的数据都会丢失。因此请确认在格式化之前将SD卡中所有重要文件备份。
小编提示:一些设备需要SD卡进行内部格式化。因此你可能需要查阅数码相机或手机的用户说明书。这样才能确定是否能够使用计算机来格式化设备使用的SD卡,以及使用计算机格式化是否会造成以后的兼容性问题。
看过“内存卡删不掉文件怎么办”
浏览量:2
下载量:0
时间:
在有些时候我们的内存卡找不到文件,这该怎么办呢?下面就由读文网小编来为你们简单的介绍内存卡找不到文件的解决方法吧!希望你们喜欢!
方法一:
1、将记忆卡连接上电脑,右击我的电脑——管理——计算机管理
2、点击左边存储下的磁盘管理,确定记忆卡显示的磁盘信息,如磁盘1等
3、右击磁盘1——新建分区,选择fat32,系统将提示创建成功
4、最后对记忆卡进行格式化就可以了
方法二;
通过瑞星或360安全卫士的文件粉碎工具(其他文件粉碎也可以)把MMC下面的system一起粉碎了。然后就能正常完成格式化。
方法三;
通过删除system文件。必定有一个无法删除的陌生文件。选中这个文件,重命名(首要的是改后缀名txt,rar,mp3这些都可以),删除了这个陌生文件,再尝试格式化。
方法四
插上内存卡,双击电脑, 然后按ALT+T选择文件夹选项 --查看 --找到(显示所有文件和文件夹) 在前面的⊙点一下 ! 然后在找到(隐藏受保护的操作系统文件)前面的√取掉!! 然后点应用,确定! 此时再点内存卡右键打开,找到AUTO的文件全部删掉,就可以了,然后安全删除内存卡再插上就可以双击打开。
其次:
中过文件夹病毒,原文件夹被隐藏起来了,这个时候,显示隐藏文件的机制有可能被破坏,用第三方的软件最有效,比如total commander。
1、下载这个软件,打开。先进入选项,显示,把显示隐藏文件的选项打上勾。
2、再打开硬盘,就可以看到被隐藏的文件夹了。带红色叹号的那些。选中文件夹,点右键,属性,把隐藏的勾取掉即可。
3、此时,文件夹就都恢复了。然后再装杀毒软件,杀一次好了。
看过"内存卡找不到文件怎么办"
浏览量:2
下载量:0
时间:
想知道电脑的虚拟内存文件怎么删除吗,下面是读文网小编带来怎么删除虚拟内存文件的内容,欢迎阅读!
一、单击“开始→控制面板”,打开控制面板。
二、 然后,依次选择“管理工具→本地安全策略”,打开“本地安全设置”窗口。
三、在“安全设置”栏中双击“本地策略”,选择“安全选项”,在右侧的空格中,找到并双击“关机清理虚拟内存页面文件”选项,在随后弹出的对话框中,将该项设置为“已启用”,最后单击“确定”按钮即可。
这样就完成了系统空间的优化,虚拟内存页面文件就被清空了。注意:以上方法同样在Windows 7系统也是适用的。
浏览量:8
下载量:0
时间:
你们知道电脑的虚拟内存怎么删除吗,下面是读文网小编带来怎么删除虚拟内存文件夹的内容,欢迎阅读!
鼠标点击左面开始菜单,出现上拉菜单,在上拉菜单上面点击设置菜单
点击设置菜单以后会出现侧拉菜单,在侧拉菜单上面鼠标点击控制面板
点击控制面板以后控制面板窗口出现,在控制面板窗口上面找到管理工具,并用鼠标点击管理工具。
点击管理工具以后出现管理工具窗口,在管理工具窗口上面找到本地安全策略图标,并点击本地安全策略图标
点击本地安全策略图标以后,出现本地安全设置窗口,在本地安全设置窗口左边找到本地策略,并点击本地策略
点击本地策略以后会出现下拉文件夹,在下拉文件夹上面找到安全选项,并点击安全选项
点击安全选项以后在右边的窗口里面出现策略列表,在列表双击(关机:清理虚拟内存页面文件,)
双击(关机:清理虚拟内存页面文件,)以后出现关机清理虚拟内存页面文件属性窗口,在窗口上面选中已启用,然后点击确定按钮这样就设置完成啦
浏览量:12
下载量:0
时间:
你们知道电脑怎么删除虚拟内存吗,下面是读文网小编带来虚拟内存文件怎么删除的内容,欢迎阅读!
第一步:右建点击击“我的电脑”选择“属性 如下图:
第二步:在系统属性点高级选项
第三个步:在高级选项找到性能选项点设置半并进入下一个界面操作
第四步:在这里可以找到虚拟内存点更改会进入下一步操作
第五步:在虚拟内存的选项中你就可以删除大小了。
浏览量:5
下载量:0
时间:
有些网友反映说他的内存卡删不掉文件,对于这个问题该怎么办呢?下面就由读文网小编来给你们说说内存卡删不掉文件的解决方法吧,希望可以帮到你们哦!
打开DiskGenius软件,找到自己的内存卡所在盘,打开内存卡文件并全选,单击右键选择“强力删除”。
在弹出的“DiskGenius”对话框中选择“删除”按钮,如图所示。
此时出现“彻底删除文件”对话框,需要等一段时间。
现在可以看到内存卡里面的文件已经没有了,如图所示。
看过“内存卡删不掉文件该怎么办”
浏览量:2
下载量:0
时间:
有一网友说他的的内存卡删不了文件,这该怎么办呢?那么下面就由读文网小编来给你们说说内存卡删不了文件的解决方法吧,希望可以帮到你们哦!
打开360安全卫士,如图所示,单击面板右侧中间位置的“更多”,如图所示。
在打开的新界面中单击打开“磁盘擦除”,如图所示。
再打开的“360擦除痕迹清除器”中把内存卡中不能删除的文件拖进来,单击“开始擦除”按钮。
经过很长一段时间后,内存卡中的文件就永远删除了。
看过“内存卡删不了文件该怎么办”
浏览量:2
下载量:0
时间:
手机系统内存是指手机运行程序时使用的内存(即运行内存),只能临时存储数据,用于与CPU交换高速缓存数据,但是随机存储器(RAM)本身不能用于长期存储数据。下面是读文网小编带来手机内存文件如何清理的内容,欢迎阅读!
1. 安装腾讯手机管家并进入界面,在健康优化中找到垃圾清理一栏:
2.管家可实现 “垃圾文件”、“软件缓存”、“多余安装包”、“系统缓存”、“软件卸载残余”五种类型下的清理功能,点击下方“垃圾扫描”按钮,开始对手机的缓存、垃圾等文件进行扫描:
3.完成扫描后,管家会提示可以清理的垃圾文件、缓存文件和系统缓存、及软件卸载残余,同时管家将已安装的软件安装包列为“多余安装包”,删除后可减少空间内存占用,如若不想删除可在清理之前,取消勾选。检查完毕后,点击下方“一键清理”即可清除。
浏览量:2
下载量:0
时间:
大家都知道,win7系统默认最多只能存储4G大小的文件,如果大于4G以上的内存文件就无法在windows操作系统中运行了,那么你知道win7系统不能下载超过4G内存的文件怎么办吗?下面是读文网小编整理的一些关于win7系统不能下载超过4G内存的文件的相关资料,供你参考。
1、右键点击你存放文件的磁盘,点属性,这时你在“文件系统”处应该可以看到是FAT32 还是NTFS;
2、如果发现是FAT32 格式的话,那么保存好你的重要数据,然后右键点击,选择格式化;
3、格式化窗口出来之后,将文件系统 设置为 NTFS ,然后勾选快速格式化,并点击确定;
4、格式化之后磁盘中就可以存放大于4G的单个文件了,自然下载游戏也能保存了。
win7系统不能下载超过4G内存的文件的相关
浏览量:2
下载量:0
时间: