标签: ioexception

我该怎么读缓冲读卡器?

我有以下从缓冲读取器读取的示例:

while ((inputLine = input.readLine()) != null) {
   System.out.println("I got a message from a client: " + inputLine);
}
Run Code Online (Sandbox Code Playgroud)

println只要缓冲读卡器中出现某些内容(input在本例中),就会执行循环中的代码.在我的例子中,如果客户端应用程序向套接字写入内容,则将执行循环中的代码(在服务器应用程序中).

但我不明白它是如何工作的.inputLine = input.readLine()等待直到缓冲的阅读器中出现某些内容,当出现某些内容时,它会返回true并执行循环中的代码.但什么时候null可以退货.

还有一个问题.上面的代码取自一个方法,throws Exception我在Thread的run方法中使用了这个代码.而当我尝试在编译器抱怨throws Exception之前放置run:重写方法不会抛出异常.没有throws exception我有来自编译器的另一个抱怨:​​未报告的异常.那么,我该怎么办?

java readline ioexception bufferedreader

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

如果应该打开普通/文本消息,为什么Javamail会抛出IOException?

我使用以下代码来读取消息对象的主体:

Object content = _message.getContent();
String body = null;
if (content instanceof String) {
    body = (String) content;
} else if (content instanceof Multipart) {
    Multipart multipart = (Multipart) content;
    BodyPart part = multipart.getBodyPart(0);
    body = (String) part.getContent();
}
Run Code Online (Sandbox Code Playgroud)

当内容是多部分时,一切正常,但是当内容只是text/plain时,我得到以下异常(在第1行的getContent()调用中已经!):

13.01.2011 17:22:23 org.zkoss.zk.ui.impl.UiEngineImpl handleError:1253
SCHWERWIEGEND: >>org.zkoss.zk.ui.UiException: java.io.IOException
java.io.IOException
at  javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:108)
at com.sun.mail.handlers.text_plain.getContent(text_plain.java:90)
at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:775)
at javax.activation.DataHandler.getContent(DataHandler.java:522)
at javax.mail.internet.MimeMessage.getContent(MimeMessage.java:1396)
Run Code Online (Sandbox Code Playgroud)

我还尝试了JavaMail FAQ中显示的代码:http://www.oracle.com/technetwork/java/faq-135477.html#mainbody

结果相同.

通过在IMAPFolder实例上调用getMessages(n)来检索消息.文件夹实例来自IMAPStore对象.

我完全没有想法会出现什么问题......有没有人有想法?

java jakarta-mail ioexception

3
推荐指数
1
解决办法
4917
查看次数

哪个调试工具(如果有的话)允许我识别锁定文件的线程?

我正在调试一个定期引发的测试IOException,注意到一个文件因为被另一个进程使用而无法删除.我怀疑这个过程确实是我的测试工具,并且进程中的其他一些线程在我预期时没有处理它的文件资源.

有没有一个工具可以用来确定哪个线程阻挡了阻碍锁?如果我可以识别线程,那么我可以检查它的调用堆栈,并至少尝试确定资源尚未处理的原因.该SOS调试工具看起来很有希望,但我不认为这会从我的调查中删除的猜测相当数量的任何特征.

一种想法是识别本机OS线程ID,然后可以通过SOS将其映射到托管线程ID.我将如何完成前者?

.net io file-locking sos ioexception

3
推荐指数
1
解决办法
200
查看次数

如何使用System.in修复"IOException:Stream closed"异常?

我正在编写一个简单的程序,使用a读取和处理文件内容BufferedReader.

BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );

System.out.println("Enter the file name to read");
String fileName = br.readLine();
br.close();

// Process file contents

br = new BufferedReader( new InputStreamReader(System.in) );
System.out.println("Enter another file name to read");
fileName = br.readLine();
br.close();
Run Code Online (Sandbox Code Playgroud)

但是当我调用br.readLine()另一个文件名时,我得到以下异常:

线程"main"中的异常java.io.IOException:Stream已关闭

我不明白如何System.in关闭流.我犯了什么错误,如何解决这个问题?

java system.in ioexception

3
推荐指数
1
解决办法
5278
查看次数

部署期间JBoss java.io.IOException

我正在JBossAS 7.1.1上构建一个JBoss Application Server模块.在尝试修改清单文件中的类路径时,我遇到了这个错误:

12:30:53,097 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015876: Starting deployment of "MyDeployableProject.war"
12:30:53,141 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.unit."MyDeployableProject.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyDeployableProject.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "MyDeployableProject.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [classes.jar:1.6.0_31]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [classes.jar:1.6.0_31]
    at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_31]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Failed to get manifest for deployment "/opt/server/bin/jboss-as-7.1.1.Final/standalone/deployments/MyDeployableProject.war"
    at org.jboss.as.server.deployment.module.ManifestAttachmentProcessor.deploy(ManifestAttachmentProcessor.java:73) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    ... 5 more
Caused by: …
Run Code Online (Sandbox Code Playgroud)

jboss manifest ioexception jboss7.x

3
推荐指数
2
解决办法
9691
查看次数

Java的.尝试关闭所有连接的有效方法是什么?

例如,我有处理输入/输出流的方法:

    public void doSomethingWithStreams () throws FileNotFoundException, IOException
            {
             OutputStream out1, out2;            
             InputStream in1, in2;
try{                     
            //do something with Streams: read, write, process, etc.
            }
finally{
        //There I try to close connections
        out1.close();
        out2.close();
        in1.close();
        in2.close();
        }    
            }
Run Code Online (Sandbox Code Playgroud)

方法可以抛出IOException并且它是有效的行为.但如果我在这行中有异常:

 out1.close();
Run Code Online (Sandbox Code Playgroud)

其他三个Stream将不会关闭.你能推荐什么解决方案?怎么样?如何关闭所有

我只有一个:

    public void doSomethingWithStreams () throws FileNotFoundException, IOException
            {
             OutputStream out1, out2;            
             InputStream in1, in2;
         try{            
            //do something with Streams: read, write, process, etc.
            }
finally{
        //There I try to close connections

try{out1.close();}
  finally{
     try{out2.close();} …
Run Code Online (Sandbox Code Playgroud)

java io error-handling try-catch ioexception

3
推荐指数
1
解决办法
147
查看次数

Hadoop无法完成工作,因为“设备上没有剩余空间”

我正在尝试运行一个非常简单的hadoop工作。它是对经典wordCount的修改,它不对单词进行计数,而是对文件中的行进行计数。我想用它来清理一堆我知道有重复项的大日志文件(每个约70GB)。每行都是一个“记录”,因此我有兴趣仅获取一次每个记录。

我知道我的代码有效,因为它可以在我使用小型普通文件运行它时执行的工作。当我使用大文件运行它时,Hadoop表现得很严格。首先,它可以在MAP阶段正常开始工作,该阶段通常可以毫无问题地达到100%。但是,在处理REDUCE时,它永远不会超过50%。它可能达到40%,然后在显示一些“设备上没有剩余空间”异常之后返回到0%:

FSError: java.io.IOException: No space left on device
Run Code Online (Sandbox Code Playgroud)

然后,它尝试再次执行减少操作,当达到40%时,它再次降低到0%,依此类推。当然,它会这样做2到3次,然后才决定结束而没有成功。

但是,此异常的问题在于,它与磁盘上的实际空间无关。磁盘空间永远不会满。不是HDFS上的总(全局)空间,也不是每个节点中的单个磁盘。我用以下方法检查fs状态:

$ hadoop dfsadmin -report > report
Run Code Online (Sandbox Code Playgroud)

该报告从未显示实际节点达到100%。实际上,没有节点能与之接近。

我在每个节点上都有大约60GB的磁盘可用,并且在具有60个数据节点的群集中运行该磁盘,这使我的总空间超过3TB。我要处理的文件只有70GB。

在Internet上查看时,我发现这可能与Hadoop在处理大量数据时创建太多文件有关。原始的wordCount代码大大减少了数据(因为单词重复很多)。70GB的文件可以减少到仅7MB的输出。但是,我期望仅减少1/3左右,或输出大约20-30GB。

Unix类型的系统每个进程最多只能有1024个打开文件:

$ ulimit -n
1024
Run Code Online (Sandbox Code Playgroud)

如果hadoop不仅能创造更多的东西,那可能是个问题。我要求系统管理员将该限制增加到65K,即现在该限制为:

$ ulimit -n
65000
Run Code Online (Sandbox Code Playgroud)

问题继续。是否可以我需要进一步增加此限制?这里还有其他事情吗?

非常感谢你的帮助!

代码在这里:

package ...;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class LineCountMR {

  public static class MapperClass 
       extends Mapper<Object, Text, Text, IntWritable>{

    private final static IntWritable one = new IntWritable(1); …
Run Code Online (Sandbox Code Playgroud)

hadoop ioexception

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

无法访问刚刚创建的文件

我的程序包含一个表单和七个用户控件.我正在使用MS Visual Studio 2010 C#语言.

我的程序:将.txt文件中的所有文本显示在UserControl的文本框中.

我的目标:我想检查.txt文件是否存在.如果.txt文件不存在,请创建它,以便用户可以将一些数据放入.txt文件中,然后显示在UserControl的文本框中.如果.txt文件已存在,则直接将.txt文件中的数据显示到文本框中.

我在FORM中检查文件是否存在的代码:

private void Form1_Load(object sender, EventArgs e)
    {
        string path1 = @"C:\Users\PK\Documents\Visual Studio 2010\ABC.txt";
        if (!File.Exists(path1))
        {
            File.Create(path1);
        }

        string path2 = @"C:\Users\PK\Documents\Visual Studio 2010\DEF.txt";
        if (!File.Exists(path2))
        {
            File.Create(path2);
        }

        string path3 = @"C:\Users\PK\Documents\Visual Studio 2010\GHI.txt";
        if (!File.Exists(path3))
        {
            File.Create(path3);
        }

        string path4 = @"C:\Users\PK\Documents\Visual Studio 2010\JLK.txt";
        if (!File.Exists(path4))
        {
            File.Create(path4);
        }

        string path5 = @"C:\Users\PK\Documents\Visual Studio 2010\MNO.txt";
        if (!File.Exists(path5))
        {
            File.Create(path5);
        }
    }
Run Code Online (Sandbox Code Playgroud)

用于将文本从.txt文件读取到UserControl中的TextBox的代码:(对于剩余的6个用户控件及其文本框,这是相同的.只有.txt文件和文本框的名称相应地不同.

private void UserControl1_Load(object sender, EventArgs e) …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2010 ioexception

3
推荐指数
1
解决办法
2196
查看次数

PresentationFramework.dll中出现未处理的"System.IO.IOException"类型异常

应用程序无法加载任何xaml.也不创建空窗口"var abc = new Window1();"

错误信息仍然相同:

PresentationFramework.dll中出现"System.IO.IOException"类型的异常,但未在用户代码中处理

附加信息:找不到资源'wvmlog.xaml'.(对于wvmlog.xaml)在InitializeComponent()上发生异常;

在另一台PC上创建这些对象时没有错误 - 因此问题不在项目设置中.

不要帮忙:

  • 重新安装VS.
  • 新安装的VS.
  • 重新安装.net框架
  • 从TFS撤消源代码
  • 从TFS完成新的工作空间和负载
  • visual studio清洁色谱
  • 找到并删除所有缓存的dll,pbd
  • 删除解决方案中的所有obj目录
  • 安装和使用VS 2010,VS 2012,VS 2013
  • 将VS和解决方案移动到另一个硬盘驱动器

帮助:

  • 项目副本(帮助1-2天,然后问题再次出现,没有任何xaml操作)
  • 将解决方案配置从"调试"更改为"发布"(帮助1-2天,然后问题出现在发布配置中,无需使用xaml进行任何操作)

问题出在一台装有Win 7,64位的PC上.在某些xaml窗口重命名后突然出现问题,但这些更改多次撤消,但问题仍然存在.

可能是某些操作系统损坏,或者某些wpf/.net缓存?

为什么wpf/.net在没有错误编译的项目上显示这样的错误 - 所以编译器知道这些资源确实存在?

任何帮助表示赞赏.

resources ioexception

3
推荐指数
1
解决办法
9782
查看次数

java - file.createNewFile()IOException"没有这样的文件或目录"

虽然编码Java有这个问题:file.createNewFile()抛出IOException"没有这样的文件或目录".检查出其他答案,但似乎没有任何帮助.有任何想法吗?..

java ioexception

3
推荐指数
2
解决办法
9354
查看次数