Tag: io

从Java中的位置读取文本文件

我需要从OFFSET的文本文件中使用指定的Charset读取char [](大小为COUNT)。 COUNT和OFFSET是字符,而不是字节。 他是我的代码: raf = new RandomAccessFile(filePath, “r”); if ((mBuffer == null) || (mBuffer.length < count)) { mBuffer = new byte[(int)(count/mDecoder.averageCharsPerByte())]; mByteWrap = ByteBuffer.wrap(mBuffer); mCharBuffer = new char[count]; mCharWrap = CharBuffer.wrap(mCharBuffer); } try { offset = (int)(offset/mDecoder.averageCharsPerByte()); count = (int)(count/mDecoder.averageCharsPerByte()); raf.seek(offset); raf.read(mBuffer,0,count); mByteWrap.position(0); mCharWrap.position(0); mDecoder.decode(mByteWrap, mCharWrap, true); } catch (IOException e) { return null; […]

例外:java.io.StreamCorruptedException:无效的类型代码:00

当我通过EJB接口查询实体时,在控制台下可以,但是从Swing切换到查询会抛出此exception。 例外: java.rmi.UnmarshalException: failed to unmarshal MY_ENTITY****; nested exception is: java.io.StreamCorruptedException: invalid type code: 00 at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:219) at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:224) at ***.****_6ndxy4_EOImpl_922_WLStub.getProductInformation(Unknown Source) at MY_CLASS****.getProductInformation(*****.java:460) at ******$5.run(OrigBlotter.java:318) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.StreamCorruptedException: invalid type code: 00 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1642) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) […]

如何在Java应用程序中强制使用Windows行结尾?

我有一个Java应用程序写入文件: BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile)); bw.write(line + lineTermination); 线路终端定义为: \r\n 我把奇怪的,神秘的空白行插入我的文件中。 如果我将代码更改为: bw.write(line); bw.newLine(); 但是我想强制一个特定的行结束,而不是使用System属性。 客户特别要求一个行结束字符 – 有些甚至有|。 它不是一个可行的解决方案,只是使用\ n。 以下是缺少行的数据片段: “KABE”,”14/01/11″,”14:35″,”14:56″,”1987″,”US”,”SS”,”CO”,”MARRIED WITH CHILDREN”,””,”EINE SCHRECKLICH NETTE FAMILIE”,””,”N”,”10″,””,”12″,”O’NEILL ED”,”13″,”SAGAL KATEY” “PRO7″,”14/01/11″,”14:35″,”14:55″,”2001″,”US”,”SS”,”CO”,”SCRUBS”,””,”SCRUBS DIE ANFAENGER”,””,”C”,”10″,”BERNSTEIN ADAM”,”12″,”BRAFF ZACH”,”13″,”CHALKE SARAH” 谢谢你的时间 :-)

如何抛出IOException?

public class ThrowException { public static void main(String[] args) { try { foo(); } catch(Exception e) { if (e instanceof IOException) { System.out.println(“Completed!”); } } } static void foo() { // what should I write here to get an exception? } } 嗨! 我刚刚开始学习例外,需要赶上一个考试,所以请有人能为我提供解决方案吗? 我会非常感激的。 谢谢!

通过Resource读取和写入Java文件

我正在尝试读取和写入文件,但我想通过资源访问该文件。 这就是我的工作 File f = new File(ClassLoader.getSystemResource(“/blah/blah/Properties.prop”).toURI()); BufferedReader br = new BufferedReader(new FileReader(f)); String line = br.readLine(); PrintWriter p = new PrintWriter(new File(ClassLoader.getSystemResource(“/blah/blah/Properties.prop”).toURI())); 但似乎都不正确。 这样做的正确方法是什么?

InputStream中的文件路径/名称

如何从Java中的InputStream获取文件路径/名称?

使用java集合对Person的ArrayList进行排序

在我使用的代码下面工作正常并输出名称,除了sort方法不起作用。 我期待“Collections.sort(nameFromText);” 按名字按字母顺序对ArrayList进行排序。 我究竟做错了什么? public static void main(String[] args) throws IOException { // Create and populate text file Writer textFile = new FileWriter(“names.txt”); String[] nameArray = new String[] { “Tina Tully\n”, “Bill Simpson\n”, “Dana Smith\n”, “Ralph Andrews\n”, “Greg Smithers\n”, “Lisa Krump\n”, “Gill Bitters\n”, “Barbara West\n”, “Sandra McDonald\n”, “Bart Willis\n”, “Bucky Zimmerman\n”, “Richard Vicks\n”, “Velma Tarp\n”, […]

Java nio连接正在创建多个套接字级连接,为什么?

我写了一个简单的java nio程序,如下所示 public static void main(String[] args) throws IOException, InterruptedException { InetSocketAddress address = new InetSocketAddress(“127.0.0.1”,1001); Selector incomingMessageSelector = Selector.open(); SocketChannel socketChannel = SocketChannel.open(); socketChannel.configureBlocking(false); //到此为止,代码创建了到端口52209和52210的前2个连接 socketChannel.connect(address); socketChannel.register(incomingMessageSelector, SelectionKey.OP_CONNECT); socketChannel.register(incomingMessageSelector, SelectionKey.OP_WRITE); socketChannel.register(incomingMessageSelector, SelectionKey.OP_READ); //然后它创建到端口1001的2个连接 Thread.sleep(900000L); } 我想了解它为什么创建4个连接,使用标准的TCP阻塞库,它往往会创建2个连接。 我使用JDK 1.7和Windows 7。 在图像中,仅有4个突出显示的连接是由客户端创建的。 标有红色的一个连接1条目是服务器端口。 PFA显示这4个连接的图像。 我真的很困惑为什么 Selector incomingMessageSelector = Selector.open(); 在动态端口上创建连接

将自定义属性或元数据添加到文件java

我的文件需要一个名为“加密使用”的额外属性。 但这给出了“IllegalArgumentExeption”。 我知道它为什么会出现这个错误,“使用加密”并不是一个属性,但有没有办法可以强制它呢? 或者将自定义元数据添加到文件中? Path path = new File(“/propertyfiles/encdec.properties”).toPath(); try{ Files.setAttribute(path, “encryption used”, “testtesttest”); }catch(IOException e){ System.out.println(e.getMessage()); } try{ System.out.println(Files.getAttribute(path, “encryption used”)); }catch(IOException e){ System.out.println(e.getMessage()); }

用Layman的术语解释Java中的close()方法

我经历了一个java教程,允许我创建一个文本文件并在其中写下“20 Bruce Wayne”。 在主类中调用的最后一个方法名为closeFile(),它在创建后“关闭”文本文件。 如果我没有真正打开它,为什么文件需要“关闭”? 通过“打开”,我的意思是记事本编辑器(不是我正在使用的IDE)弹出“20 Bruce Wayne”字样。 请以外行的方式回答我的问题。 Main.java: class apple { public static void main(String[] args) { createfile g = new createfile(); g.openFile(); g.addRecords(); g.closeFile(); } } createfile.java public class createfile { private Formatter x; public void openFile(){ try{ x = new Formatter(“supermanvsbatman.txt”); } catch(Exception e){ System.out.println(“you have an error”); } } public […]