标签: ioexception

如何判断捕获的IOException是否是由另一个进程使用的文件引起的,而不需要解析异常的Message属性

当我打开一个文件时,我想知道它是否被另一个进程使用,所以我可以进行特殊处理; 任何其他IOException我都会冒泡.IOException的Message属性包含"进程无法访问文件'foo',因为它正由另一个进程使用.",但这不适用于编程检测.检测另一个进程正在使用的文件的最安全,最健壮的方法是什么?

.net file robustness ioexception

10
推荐指数
1
解决办法
1826
查看次数

xml pull解析器资产xml

如何使用pull解析器解析assets文件夹中的本地XML文件?我无法让pull解析器工作.它总是抛出一个异常.我想我无法获取文件的路径,或连接到文件.

xml android ioexception xmlpullparser

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

Android从内部存储播放资源文件会导致MediaPlayer.prepare提供IOException

我的应用程序从为我的应用程序指定的内部目录(/ data/data/com ...)播放音频资源文件.它似乎将文件下载到该位置没关系,setDataSource(String path)不会抛出任何异常,但MediaPlayer.prepare()会抛出IOException.相同的代码在SD卡上运行.为什么会这样?

编辑:

我们假设这是代码; 它比我的代码更简单,并抛出相同的异常:

package com.app.MediaPlayerTest;

public class MediaTest extends Activity {
    MediaPlayer mp;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        DownloadFiles();
        MusicPlay();
    }

    public void DownloadFiles() {
        //Downloads Files
    }

    public void MusicPlay()
    {
            try {
                mp.setDataSource("/data/data/com.app.pronounce/winds.mp3");
            } catch (IllegalArgumentException e1) {
                e1.printStackTrace();
            } catch (IllegalStateException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        try {
            mp.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mp.setLooping(true);
        mp.start();
    } …
Run Code Online (Sandbox Code Playgroud)

resources android ioexception media-player prepare

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

Java:写入ByteArrayOutputStream时的IOException?

由于ByteArrayOutputStream只是写入内存,IOException因此永远不会发生.但是,由于OutputStream接口的约定,所有流操作都IOException在其throws子句中定义.

"处理"这种从未发生过的正确方法是什么IOException?只需将操作包装在空try-catch块中?

或者是否存在ByteArrayOutputStream可能抛出异常的实际情况?

(另请参阅:如何以安全可读的方式处理我知道永远不会抛出的IOException?)

编辑

正如Jon指出的那样,ByteArrayOutputStream并没有声明它定义throwswrite方法的子句- 但是,它继承write(byte[])OutputStream,并且确实抛出IOEXception(非常奇怪,BAOS不会覆盖此方法,因为它可以替换超类版本 -一次写一个字节 - arraycopy调用效率更高

java exception outputstream ioexception bytearrayoutputstream

10
推荐指数
1
解决办法
7350
查看次数

在Android中使用jobb工具

我正在运行以下命令来获取我的加密obb文件以进行apk扩展.

jobb -d /home/manoj/Desktop/Test -o main.1.com.example.helloworld.obb -k "manoj" -pn com.example.helloworld -pv 1
Run Code Online (Sandbox Code Playgroud)

我得到以下异常.请告诉我出了什么问题.

Slop: 0   Directory Overhead: 0
Slop: 1132   Directory Overhead: 768
Partial Sector [32] writing to sector: 15
Partial Sector [32] writing to sector: 15
Partial Sector [32] writing to sector: 15
Partial Sector [331] writing to sector: 223
Partial Sector [417] writing to sector: 400
Partial Sector [406] writing to sector: 577
Partial Sector [333] writing to sector: 754
Partial Sector [223] writing to sector: 931
java.io.IOException: …
Run Code Online (Sandbox Code Playgroud)

android ioexception

10
推荐指数
1
解决办法
4257
查看次数

使用lsof对"打开的文件太多"进行故障排除

我在Linux上使用PID 25426运行Java应用程序.运行时lsof -p 25426,我注意到:

java    25426 uid  420w  FIFO                0,8      0t0 273664482 pipe
java    25426 uid  421r  FIFO                0,8      0t0 273664483 pipe
java    25426 uid  461r  FIFO                0,8      0t0 273622888 pipe
java    25426 uid  463w  FIFO                0,8      0t0 273633139 pipe
java    25426 uid  464r  FIFO                0,8      0t0 273633140 pipe
java    25426 uid  465r  FIFO                0,8      0t0 273622889 pipe
java    25426 uid  471w  FIFO                0,8      0t0 273623682 pipe
java    25426 uid  472r  FIFO                0,8      0t0 273633141 pipe
Run Code Online (Sandbox Code Playgroud)

该结果应如何解释?

我正在解决有太多打开文件的问题,并试图了解这个观察是否相关. …

java lsof ioexception

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

AuthenticateAsClient:System.IO.IOException:从传输流中收到意外的EOF或0字节

由于Heartbleed,我们的网关服务器已更新,此问题出现了.

由于POODLE,不再支持SSLv3.

  • 注意,问题仅出现在Win7 +盒子上; WinXP框没有问题(相同的代码,不同的操作系统=问题); 授予WinXP不再是一个有效的操作系统,只是想记下功能.

客户端应用程序(.NET 2.0)位于Windows 7(或8)框中.服务器在网关服务器后面的DMZ内运行.请注意,我发现.NET 4.0+上不再存在这个问题 - 但是由于遗留代码,我没有更新的奢侈.

Gateway Server是一个传递框,运行带有SSL的Apache HTTP Server.它的位置在DMZ之外,用于访问DMZ内部的服务器.在Gateway服务器上运行的软件版本是Apache/2.2.25(Win32),mod_jk/1.2.39,mod_ssl/2.2.25,OpenSSL/1.0.1g

以下是客户端应用程序上使用的代码(添加了大量的日志记录)...注意,'serverName'通常包含诸如" https://some.url.com "之类的值.

private bool ConnectAndAuthenicate(string serverName, out TcpClient client, out SslStream sslStream)
{
    client = null;
    sslStream = null;
    try
    {
        client = new TcpClient(serverName, 443); // Create a TCP/IP client; ctor attempts connection
        Log("ConnectAndAuthenicate: Client CONNECTED"));

        sslStream = new SslStream(client.GetStream(), false, ValidateServerCertificate, null);
        Log("ConnectAndAuthenicate: SSL Stream CREATED"));
    }
    catch (Exception x)
    {
        Log("ConnectAndAuthenicate: EXCEPTION >> CONNECTING to server: …
Run Code Online (Sandbox Code Playgroud)

tcpclient sslstream ioexception c#-2.0

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

java.io.IOException:Android Firebase 中的 AUTHENTICATION_FAILED(和 SERVICE_NOT_AVAILABLE)

获取 firebase 令牌时,我在某些设备上遇到以下错误:

Fatal Exception: d.b.a.b.g.f
java.io.IOException: AUTHENTICATION_FAILED
com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
MainActivity$3.onComplete (MainActivity.java:387)

Caused by java.io.IOException
    AUTHENTICATION_FAILED
    com.google.firebase.iid.zzu.then (zzu.java:16)
    com.google.android.gms.tasks.zzd.run (zzd.java:5)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
    java.lang.Thread.run (Thread.java:784)
Run Code Online (Sandbox Code Playgroud)

来自开发者控制台的错误日志:

com.google.android.gms.tasks.RuntimeExecutionException: 
  at com.google.android.gms.tasks.zzu.getResult (zzu.java:15)
  at com.example.MainActivity$3.onComplete (MainActivity.java:387)
  at com.google.android.gms.tasks.zzj.run (zzj.java:4)
  at android.os.Handler.handleCallback (Handler.java:808)
  at android.os.Handler.dispatchMessage (Handler.java:101)
  at android.os.Looper.loop (Looper.java:166)
  at android.app.ActivityThread.main (ActivityThread.java:7529)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:245)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:921)
Caused by: java.io.IOException: 
  at com.google.firebase.iid.zzu.then (zzu.java:16)
  at com.google.android.gms.tasks.zzd.run (zzd.java:5)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
  at java.lang.Thread.run …
Run Code Online (Sandbox Code Playgroud)

android ioexception firebase firebase-authentication firebase-cloud-messaging

10
推荐指数
2
解决办法
4396
查看次数

第一次在设备中安装应用程序失败我收到 java.io.IOException: 无法加载资产路径

每次我第一次安装该应用程序(我的意思是之前或卸载它并重新安装时未安装在设备中)时,我都会收到此错误

E  Failed to open APK '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk' I/O error
2022-09-26 16:12:40.817  8427-8606  android.vendin   pid-8427  E  Failed to open APK '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk' I/O error
2022-09-26 16:12:40.821  8427-8606  ResourcesManager pid-8427  E  failed to add asset path '/data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk'
java.io.IOException: Failed to load asset path /data/app/~~DMnzdQrGgYoMVn5mnSazHA==/com.mml.dummyapp_kotlin-7QhJglvK4ZbYX3k1LhSksg==/base.apk
 at android.content.res.ApkAssets.nativeLoad(Native Method)
 at android.content.res.ApkAssets.<init>(ApkAssets.java:291)
 at android.content.res.ApkAssets.loadFromPath(ApkAssets.java:140)
 at android.app.ResourcesManager.loadApkAssets(ResourcesManager.java:374)
 at android.app.ResourcesManager.access$000(ResourcesManager.java:67)
 at android.app.ResourcesManager$ApkAssetsSupplier.load(ResourcesManager.java:146)
 at android.app.ResourcesManager.createAssetManager(ResourcesManager.java:451)
 at android.app.ResourcesManager.createResourcesImpl(ResourcesManager.java:538)
 at android.app.ResourcesManager.findOrCreateResourcesImplForKeyLocked(ResourcesManager.java:587)
 at android.app.ResourcesManager.createResources(ResourcesManager.java:866)
 at android.app.ResourcesManager.getResources(ResourcesManager.java:938)
 at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:2225)
 at android.app.ApplicationPackageManager.getResourcesForApplication(ApplicationPackageManager.java:1672)
 at android.app.ApplicationPackageManager.getDrawable(ApplicationPackageManager.java:1437)
 at android.app.ApplicationPackageManager.loadUnbadgedItemIcon(ApplicationPackageManager.java:2950)
 at android.app.ApplicationPackageManager.loadItemIcon(ApplicationPackageManager.java:2929)
 at android.content.pm.PackageItemInfo.loadIcon(PackageItemInfo.java:271)
 at android.app.ApplicationPackageManager.getApplicationIcon(ApplicationPackageManager.java:1501)
 at fva.a(PG:5) …
Run Code Online (Sandbox Code Playgroud)

android ioexception android-manifest apk android-studio

10
推荐指数
1
解决办法
9985
查看次数

使用PipedInputStream java编写end dead exception

在以下情况下发生写入结束异常:两个线程:

A: PipedOutputStream put = new PipedOutputStream();
   String msg = "MESSAGE";
   output.wirte(msg.getBytes());
   output.flush();

B: PipedInputStream get = new PipedOutputStream(A.put);  
   byte[] get_msg = new byte[1024];
   get.read(get_msg);
Run Code Online (Sandbox Code Playgroud)

情况如下:A和B同时运行,A写入管道,B读取它.B只是从管道中读取并清除了该管道的缓冲区.然后A不会在未知的时间间隔内将msg写入管道.但是,在某一时刻,B再次读取管道并java.io.IOException: write end dead发生,因为管道的缓冲区仍然是空的.而且我不想睡眠()线程B等待A写管道,这也是不稳定的.如何避免这个问题并解决它?谢谢

java multithreading ioexception

9
推荐指数
2
解决办法
8227
查看次数