我需要一些帮助来理解IOException.我在互联网上查看了很多信息,并查看了Oracle Java网站上的技术规范.
我对IOException类及其所有子类的理解是否正确,没有关联的"错误消息"或"返回代码"值?
因此,如果想要发出一些消息和/或返回代码值,那么必须使用IOException catch逻辑插入它们吗?
如果以上是真的,那么如何将各种IOException子类分开?
例如,如果应用程序检测到IOException,它是什么类型的IOException?文件结束,文件已关闭,文件未发现,文件使用等.
在试图回答这个问题时,我惊讶地发现,当该文件已经存在时尝试创建一个新文件不会抛出一个唯一的异常类型,它只会抛出一个泛型IOException.
因此,我想知道如何确定它IOException是现有文件的结果还是其他一些IO错误.
该异常具有HResult,但此属性受到保护,因此对我无法使用.
我能看到的另一种方式是模式匹配感觉糟糕的消息字符串.
例:
try
{
using (var stream = new FileStream("C:\\Test.txt", FileMode.CreateNew))
using (var writer = new StreamWriter(stream))
{
//write file
}
}
catch (IOException e)
{
//how do I know this is because a file exists?
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Android Studio中的proguard构建一个Android应用程序,我的项目有一个库jar(na.jar),我想跳过混淆和预验证,因为来自na.jar的一些类在构建过程中给了我错误.所以在我的proguard配置文件中,我有以下选项
-dontpreverify
# com.na, org.json are packages in na.jar, don't obfuscate the code in these packages
-keep class com.na.** { *; }
-keep interface com.na.** { *; }
-keep class org.json.** { *; }
-keep interface org.json.** { *; }
Run Code Online (Sandbox Code Playgroud)
但是,在构建过程中,我仍然遇到与na.jar中的错误类相关的以下错误.
Caused by: java.io.IOException: Can't read [C:\StudioProjects\PBActivity\pBActivity\libs\na.jar(;;;;;;!META-INF/MANIFEST.MF)] (Can't process class [com/na/util/BinConverter.class] (256))
at proguard.InputReader.readInput(InputReader.java:188)
at proguard.InputReader.readInput(InputReader.java:158)
at proguard.InputReader.readInput(InputReader.java:136)
at proguard.InputReader.execute(InputReader.java:66)
at proguard.ProGuard.readInput(ProGuard.java:207)
at proguard.ProGuard.execute(ProGuard.java:81)
at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
at com.android.build.gradle.tasks.AndroidProGuardTask.proguard(AndroidProGuardTask.java:87)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
... 62 more
Caused by: java.io.IOException: Can't process class …Run Code Online (Sandbox Code Playgroud) java android ioexception indexoutofboundsexception android-proguard
我试图从URL获取InputStream.该URL可以从Firefox打开.它返回一个json,我已经在Firefox中安装了一个用于查看json的插件,所以我可以在那里查看它.
所以我试图通过以下方式从Java中获取它:
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
Run Code Online (Sandbox Code Playgroud)
但它在urlConnection.getInputStream()中抛出IOException.
我也尝试过:
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = url.openStream();
Run Code Online (Sandbox Code Playgroud)
但没有运气.
任何信息都很明显.提前致谢.
我遇到MySQL的问题,我有以下错误.
MySqlClient.MySqlException: Fatal error encountered during command execution. --->
MySql.Data.MySqlClient.MySqlException: Fatal error encountered attempting to read the resultset. --->
MySql.Data.MySqlClient.MySqlException: Reading from the stream has failed. --->
System.IO.EndOfStreamException: Attempted to read past the end of the stream.
Run Code Online (Sandbox Code Playgroud)
我在夜间运行时会发生此错误.并且它很少发生,所以很难找到为什么会发生这种情况.我使用.NET 3.5与MySQLConnector 6.2.4.0.
我正在使用以下代码运行它.
public DataSet Read(String query, List<KeyValuePair<String, object>> parameters)
{
MySqlDataAdapter adapter = null;
DataSet returnVal = null;
if (query != null && query.Length > 0)
{
try
{
returnVal = new DataSet();
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
query …Run Code Online (Sandbox Code Playgroud) 我正在努力的应用程序突然崩溃了
java.io.IOException: ... Too many open files
Run Code Online (Sandbox Code Playgroud)
据我所知,这意味着文件已打开但未关闭.
Stacktrace当然是在事后发生的,只能帮助理解发生了什么事件错误.
什么是一种智能的方式来搜索你的代码库来找到这个问题,这似乎只是在应用程序处于高压力负载时才会发生.
我刚刚在此链接上设置了适用于Android的quickstart google drive sdk应用程序
我正在尝试上传图像,然后对它们进行OCR.Android快速入门上的示例应用程序运行正常,但是当我尝试将OCR的布尔值设置为true时,我得到以下IOException:
07-29 03:33:01.172: D/OCR_SERVICE(22602): Error 2: 400 Bad Request
07-29 03:33:01.172: D/OCR_SERVICE(22602): {
07-29 03:33:01.172: D/OCR_SERVICE(22602): "code": 400,
07-29 03:33:01.172: D/OCR_SERVICE(22602): "errors": [
07-29 03:33:01.172: D/OCR_SERVICE(22602): {
07-29 03:33:01.172: D/OCR_SERVICE(22602): "domain": "global",
07-29 03:33:01.172: D/OCR_SERVICE(22602): "message": "Bad Request",
07-29 03:33:01.172: D/OCR_SERVICE(22602): "reason": "badRequest"
07-29 03:33:01.172: D/OCR_SERVICE(22602): }
07-29 03:33:01.172: D/OCR_SERVICE(22602): ],
07-29 03:33:01.172: D/OCR_SERVICE(22602): "message": "Bad Request"
07-29 03:33:01.172: D/OCR_SERVICE(22602): }
Run Code Online (Sandbox Code Playgroud)
有趣的是我能够做OCR大约2次,然后我可能已经修改了源或其他东西,现在它不起作用.但是我记得我从快速入门应用程序中做出的唯一改变是更改此行:File file = service.files().insert(body, mediaContent).execute();到以下内容:
File file = service.files().insert(body, mediaContent).setOcr(true).execute();
Run Code Online (Sandbox Code Playgroud)
这是我的代码: …
ocr android ioexception google-api-java-client google-drive-api
我有一个在Novell网络上运行的WinForms客户端 - 服务器应用程序,当连接到网络上的单独Windows 2003 Server时会产生以下错误:
TYPE: System.IO.IOException
MSG: Logon failure: unknown user name or bad password.
SOURCE: mscorlib
SITE: WinIOError
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalGetFileDirectoryNames(String path,
String userPathOriginal, String searchPattern, Boolean includeFiles,
Boolean includeDirs, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern,
SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern)
at Ceoimage.Basecamp.DocumentServers.ClientAccessServer.SendQueuedFiles(
Int32 queueId, Int32 userId, IDocQueueFile[] queueFiles)
at Ceoimage.Basecamp.ScanDocuments.DataModule.CommitDocumentToQueue(
QueuedDocumentModelWithCollections doc, IDocQueueFile[] files)
Run Code Online (Sandbox Code Playgroud)
客户的网络管理员通过手动将工作站用户名和密码与服务器上的本地用户同步来管理Windows Server连接.关于错误的奇怪之处在于用户可以在错误之前和之后写入服务器,所有这些都没有明确登录.
你能解释一下错误发生的原因并提供解决方案吗?
我想用C#读取已打开的excel文件.我正在使用此方法,但它在Microsoft Excel中打开文件时无法读取excel文件.
FileStream stream = File.Open("myfile.xlsx", FileMode.Open, FileAccess.Read);
Run Code Online (Sandbox Code Playgroud)
它给 IOException: The process cannot access the file 'myfile.xlsx' because it is being used by another process.
我希望你明白我的意思.我想保持excel文件打开,当文件在Microsoft Excel打开时,我想从C#中读取它.我正在使用C#net framework 4.0
我想将gcm客户端实现到现有的Android应用程序中.因此,按照本教程,我编写了以下代码:
public class RegisterForGCMAsyncTask extends AbstractSecureOperationTask {
...
@Override
protected Boolean doInBackground(String... params) {
String token = authenticate();
getRegId();
if (TextUtils.isEmpty(registrationId)) {
return false;
}
//
try {
URL url = convertToURLEscapingIllegalCharacters(String.format(Constants.REGISTER_URL,
registrationId, userId, token));
URLConnection connection = url.openConnection();
InputStreamReader streamReader = new InputStreamReader(connection.getInputStream());
JSONParser parser = new JSONParser();
JSONObject rootObj = (JSONObject) parser.parse(streamReader);
String status = rootObj.get("status").toString();
if (status.equals("OK")) {
return true;
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return …Run Code Online (Sandbox Code Playgroud) android ioexception google-cloud-messaging service-not-available