PersistenceManager.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:PhET 作者:
private void saveJNLP( Serializable object ) throws Exception {

        final JFrame frame = PhetApplication.getInstance().getPhetFrame();

        // XML encode into a byte output stream.
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        XMLEncoder encoder = new XMLEncoder( baos );
        encoder.setExceptionListener( new ExceptionListener() {
            private int errors = 0;

            // Report the first recoverable exception.
            public void exceptionThrown( Exception e ) {
                if( errors == 0 ) {
                    showError( QWIResources.getString( "Save.error.encode" ), e );
                    errors++;
                }
            }
        } );
        encoder.writeObject( object );
        encoder.close();
        if( object == null ) {
            throw new Exception( QWIResources.getString( "XML encoding failed" ) );
        }

        // Convert to a byte input stream.
        ByteArrayInputStream inputStream = new ByteArrayInputStream( baos.toByteArray() );

        // Get the JNLP service for saving files.
        FileSaveService fss = (FileSaveService)ServiceManager.lookup( "javax.jnlp.FileSaveService" );
        if( fss == null ) {
            throw new UnavailableServiceException( "JNLP FileSaveService is unavailable" );
        }

        // Save the configuration to a file.
        FileContents fc = fss.saveFileDialog( null, null, inputStream, _directoryName );
        if( fc != null ) {
            _directoryName = getDirectoryName( fc.getName() );
        }
    }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号